「今日の昼飯、何にしようか……」「この3つのタスク、どれから手をつければいいんだ……」
そんな些細な、しかし確実にあなたの脳のリソースを削り取る「選択」という名のコストに、毎日どれほどの時間を奪われているでしょうか。エンジニアにとって、意思決定の遅れは生産性の低下に直結します。
実は、Windowsユーザーなら誰もが持っている「PowerShell」という魔法の杖を使えば、これらの迷いをわずか0.1秒で霧散させることが可能です。本記事では、単純なコマンド一つで「運命」を決定づける黒魔術的なテクニック「Get-Random」の真髄をお伝えします。
迷う時間は、人生の負債だ。
この記事を読み終える頃、あなたはマウスを捨て、黒い画面に呪文を打ち込むことで、決断疲れから解放された全能感を手に入れているはずです。
なぜデキるエンジニアは「迷わない」のか?
「どちらでもいいこと」に悩むのは、エンジンを空吹かししてガソリンを垂れ流しているようなものです。優秀なエンジニアは、自分の脳がもっともクリエイティブな作業に集中できるよう、些細な決定をあえて「システム」に委ねます。
決断疲れを回避するための自動化思考
あなたは「ジャムの法則」をご存知でしょうか。選択肢が多すぎると、人間は選ぶこと自体を苦痛に感じ、最終的に購入を諦めてしまうという有名な心理学の法則です。日々の業務でも同様のことが起こっています。ランチの店、メールを返信すべき順番、あるいはコードレビューの担当者……。
これらを考えるたびに、脳のメモリは少しずつ消費されていきます。SNSでは「朝起きてから着る服を迷うだけで、午後の判断力が鈍る」という話がよく話題になりますが、これは決して大げさな表現ではありません。
そこで、あえて「アルゴリズムによる不確実性」を導入します。自分の意志で選ばないことは一見無責任に思えるかもしれませんが、実は「何でもいい」レベルの悩みに対しては、外部の乱数に従うことがもっとも合理的な解決策となります。それは、自分の思考を休ませるための「脳の休耕田」を、デジタルの力で作り出すようなもの。土地を休ませることで、次の作物の収穫量が増えるように、判断を自動化することで、本当に重要な課題への集中力が劇的に向上するのです。
「専門家の間では、選択肢を減らす仕組みこそがパフォーマンスを維持する唯一の道だという意見もある」ほど、この自動化思考は現代ビジネスにおいて必須のスキルと言えるでしょう。
【黒魔術レシピ】リストからランダムに1つ選ぶワンライナー
それでは、さっそく迷いを一掃する呪文(コード)を伝授しましょう。PowerShellを開き、以下のコードをコピー&ペーストしてみてください。
基本コードと「魔法の効果(キャッチコピー)」
今回使用する基本形は、驚くほどシンプルです。
"A","B","C" | Get-Random
たったこれだけです。コンマで区切られたリストが、パイプライン(|)を通じて Get-Random という魔法のフィルターを通ると、瞬時に1つの結果として出力されます。
例えば、今日のランチに迷っているならこうです。"ラーメン","カレー","定食","パスタ" | Get-Random
このコマンドを実行した瞬間、画面には運命の1択が表示されます。これは、中身の見えない自動販売機でボタンを押すようなワクワク感を、退屈な業務の合間に提供してくれます。
業界では「迷ったらとりあえず乱数に聞け」という見方が広がっていますが、このワンライナーの真骨頂はそのスピード感にあります。Webブラウザを立ち上げて占いサイトを見る必要も、スマホでサイコロアプリを起動する必要もありません。今開いているターミナルで、思いついた瞬間に実行できる。この0.1秒の黒魔術が、あなたの脳を停滞から解放するのです。
仕組みを解剖:配列とパイプラインの連携
なぜ、これだけでランダムな抽出ができるのでしょうか。この短い呪文の裏側には、PowerShellの「オブジェクト指向」という強力な設計思想が隠されています。
Get-Randomコマンドが裏で行っていること
まず、"A","B","C" という記述は、PowerShell内部では「配列(Array)」というデータの束として扱われます。そしてパイプライン符号 | は、その束を1つずつ解いて、次のコマンド(Get-Random)へと流し込む役割を果たします。
Get-Random コマンドは、流れてきたオブジェクトを受け取ると、黒い画面の裏側で「デジタルサイコロ」を振ります。どんなに複雑な選択肢のリストも、最後は一面しか出ないサイコロへと集約される。まさに、運命の糸を引く黒猫が、無数の糸の中から1本だけを選び出すようなプロセスです。
「プログラムの基本を学ぶには、こうした遊び心のある実装が一番だ」という声は少なくありません。実際に、この1行には「配列の定義」「パイプライン処理」「コマンドレットの実行」という、PowerShellの根幹をなす3つの要素が凝縮されています。
トリビアですが、Get-Random は内部的に .NET の System.Random クラスを利用しています。これは厳密な科学計算に用いる「真の乱数」ではありませんが、日常の意思決定や一般的なテストデータ作成においては、統計的に十分すぎるほどのバラツキ(不正確性)を持っています。私たちの直感よりも、よほど公平な結果を叩き出してくれるのです。
実用例:ランチからテストデータの生成まで
この黒魔術は、日常の「遊び」だけでなく、実務でも強力なサイドキック(相棒)となります。
応用的な使い方と注意点(シード値の話など)
例えば、テスト開発で「ユーザーリストからランダムに1人だけ抽出して処理を試したい」という場合、以下のように記述できます。
$users = "佐藤","鈴木","高橋","田中","伊藤"
$users | Get-Random
また、数値の範囲指定も得意としています。Get-Random -Minimum 1 -Maximum 101(※Maximumに指定した数値そのものは含まれない点に注意。この場合は1〜100から選ばれます)
エンジニアリングの現場では、「SNSで『Get-Randomはシード値(-SetSeed)を指定することで、ランダムな結果を再現可能にできるのが便利だ』と話題になっている」こともあります。特定のシード値を与えれば、何度実行しても同じランダム結果が得られるため、デバッグ(不具合修正)の際にも重宝します。
ただし、注意点もあります。Get-Random は一度に全てのリストをメモリに読み込むため、数百万件という膨大なデータを扱う場合は処理が重くなる可能性があります。とはいえ、日常の選択肢や数百件程度のテストデータであれば、その速さは文字通り「爆速」です。
「コインが空中にある瞬間に、自分の本当の望みに気づく」という例え話があります。PowerShellにコイン投げを代行させた時、画面に出た結果を見て「あ、やっぱりあっちが良かったな」と感じたなら、それがあなたの真の望みです。その時は無理にシステムに従う必要はありません。このコマンドは、あなたの潜在意識を引き出すためのトリガーでもあるのです。
まとめ:迷ったらPowerShellに委ねろ
日々の些細な選択に脳のリソースを割くのは、今日で終わりにしましょう。
記事の要点
- 決断疲れは最大の敵: 些細な選択を自動化し、クリエイティブな仕事にリソースを集中させる。
- 呪文は一行:
"リスト" | Get-Randomだけで、あらゆる選択肢を1つに絞り込める。 - 実用性と遊びの両立: ランチ選びからテストデータ作成まで、幅広く応用可能。
最小のアクション
まずは今日、ランチを決めるとき、あるいはメールの返信順に迷ったとき、PowerShellを立ち上げてみてください。そして、迷っている候補を引用符(” “)で囲ってコンマで繋ぎ、| Get-Random を後ろに付けてEnterキーを押す。たったそれだけのことが、あなたの生産性を変える第一歩になります。
未来のビジョン
この習慣が身につくと、あなたはもはや「どうしよう」と停滞すること自体に違和感を覚えるようになります。迷いが生じた瞬間に流れるようにコマンドを打つその姿は、周囲からはまさに「迷いを支配する黒魔術師」のように映るでしょう。
サイコロを振るな、コードを打て。
システム的に生成された運命に従うことで、あなたの人生はより軽やかで、より本質的なものへとシフトしていきます。今、あなたの手元にあるそのキーボードが、不確実な世界を切り開く最強の武器になるのです。
コメント