プレゼント企画の当選者を選ぶ、授業で生徒を指名する、あるいは今日のゴミ出しを誰がするか決める必要がありますか?この無料のオンラインランダムピッカーは、貼り付けられたリストから公平にランダムな項目を選択します。「アイテム」ボックスに項目を入力し(1行に1つ、またはカンマ区切りで入力)、「個数」で必要な結果の数を設定して、「生成」ボタンを押すだけです。リストには最低2つの項目が必要で、最大1000個まで入力でき、各項目の長さは最大200文字です。
すべての選択処理は、Web Crypto API (crypto.getRandomValues) を使用してブラウザ内で直接実行されます。これは、デバイスのオペレーティングシステムの乱数生成機能から暗号学的に安全な乱数を提供するものです。リストがサーバーに送信されたり、ログに記録されたり、私たちが閲覧したりすることは決してありません。ユーザーがここに入力するデータは、顧客リスト、クラスの名簿、同僚の名前などであることが多いため、他のツールよりもこの点が重要になります。「ファイルからロード」ボタンも同じ約束を守ります。ブラウザがファイル自体を読み込み、データをどこにもアップロードすることなく、ローカルでボックスを直接入力します。
オプションは、人々が実際に持っているリストの形式に合わせて作られています。「値の分割方法」はデフォルトで「自動検出」になっており、改行とカンマのどちらがリストで使用されているかを自動的に判別します。そのため、スプレッドシート、チャットメッセージ、ドキュメントからコピーしたリストをそのまま貼り付けても、書式を修正することなく機能します。データに複数の形式が混在している場合は、「改行」、「カンマ」、または「スペース」に固定してください。なお、「スペース」は常に意図的に選択するものであり、自動的に適用されることは決してありません。なぜなら、フルネームのような項目自体にスペースが含まれていることがあり、デフォルトでそれらを分割するとリストが壊れてしまうためです。「個数」は、いくつの項目を抽出するか(1〜100)を決定します。200人の応募者から3人の当選者を選ぶ場合は、応募者の名前を貼り付けて、「個数」を3に設定し、「生成」を押します。2つのコントロールは、抽出する個数が2以上になった場合にのみ適用され、それまではグレー表示されたままになります。1つは、同じ項目を2回抽出できるかどうかを決定する「重複なし」スイッチ、もう1つは、結果をどのように区切るか(「改行」、「スペース区切り」、または「カンマ区切り」)を設定する「出力形式」です。
「アイテム」ボックス内にあるボタンの列は、本来なら別の場所で行うような編集作業を実行してくれます。「ファイルからロード」は、プレーンテキストまたはCSVファイルから直接リストを読み込みます。「シャッフル」はボックス内の項目の順序をランダムに並べ替え、「並べ替え」はアルファベット順および数字の自然な順序で並べ替えます(もう一度クリックすると順序が逆になります)。そして「クリア」はボックスを空にします。「サンプル データを入力します」は、ワンクリックでツールを試せる短いテストリストを追加し、「内容に合わせて拡大します」は長いリスト全体が見えるようにボックスを展開し、「デフォルトのサイズに折りたたむ」は元のサイズに戻します。結果の下にある「すべてコピー」はすべての選択結果をクリップボードにコピーし、「ファイルに保存」はそれらをデバイスに書き出します。また、「履歴」はブラウザ内に直近10回の抽選結果を保存するため、ワンクリックで過去の結果にアクセスできます。
実際の選択はどのように行われるのでしょうか?「生成」を押すと、Math.random() のような JavaScript の疑似乱数関数に依存する代わりに、crypto.getRandomValues を介してブラウザに安全な乱数を要求し、それを使用してリスト内の位置を選択します。32ビットの生の数値をリスト上の位置に変換する段階こそが、選択ツールが人知れず誤りを犯す部分です。数値をリストの長さで割って余り(モジュロ)を取るのは最も分かりやすい方法ですが、これには偏りが生じます。なぜなら、2^32という数値がリストの項目数で完全に割り切れない限り、リストの先頭付近の項目が、残りの項目よりもわずかに多く出現してしまうからです。この欠陥は modulo bias と呼ばれ、単なる理論ではなく測定可能なものです。このピッカーは代わりに、リストの長さの最大の完全な倍数を超える値が出た場合は破棄し、もう一度乱数を引きます。この技術は rejection sampling と呼ばれます。バックグラウンドで何度か追加の抽選を行うことになりますが、大まかな確率ではなく正確な保証を得ることができます。リスト内の位置は何も変えません。最初の項目と最後の項目は、すべての抽選で全く同じ確率を持ちます。
「重複なし」スイッチは、完全に異なる2種類の抽選を区別するものであり、統計学ではそれぞれに名前がついています。これをオンにすると、ツールは Fisher-Yates アルゴリズムを使用してリストのコピーをシャッフルし、上から順に項目を取り出します。これは帽子からくじを引き、それを戻さないのと同じことなので、誰も2回選ばれることはなく、そのサイズのグループが選ばれる確率はすべて等しくなります。これは sampling without replacement(非復元抽出)と呼ばれ、当選者やチーム、順番を決める際に必要な方法です。オフにすると、それぞれの選択はリスト全体から独立して行われるため、同じ項目が複数回出現する可能性があります。これは sampling with replacement(復元抽出)と呼ばれ、繰り返しの抽選や素早い統計的サンプリングのように、各ラウンドで全員が常に選ばれる資格を維持する必要がある場合に用いられます。どちらのモードがより公平というわけではなく、それぞれ異なる問いに答えるものです。
公平な抽選は、公平な見た目にはならないものです。10個の名前から5個を抽出すると、元のリストで隣り合っていた2つの名前が選ばれたり、重複が許可されている場合は同じ名前が連続して選ばれたりすることがよくありますが、それらはすべてごく普通のことです。それぞれの抽選は独立しており、以前の選択が後の選択に影響を与えることは一切なく、誰かに当たる「順番」が回ってくることも決してありません。そうではないと信じたくなる直感は gambler's fallacy(ギャンブラーの誤謬)と呼ばれ、私たちが自分自身でランダムに選ぶのが下手な理由もこの直感のせいです。ランダムに選ぶように言われると、私たちは最初と最後の項目を避け、名前の繰り返しを避け、実際の偶然が作り出すよりもはるかに均等に選択肢を散らばらせてしまいます。不自然なほどきれいに整って見える結果は、常に人間の手が加えられた証拠です。真のランダム性は、必ず塊や繰り返しを生み出します。
なぜこのランダムピッカーを選ぶべきなのでしょうか?
- ブラウザのみでの抽出:リストはデバイス上で読み込まれ、どこにも送信されません
- Web Crypto API の乱数:Math.random() ではなく暗号学的に安全です
- modulo bias なし:rejection sampling により、すべての項目の等しい確率を保ちます
- どんな形式のリストでも:改行、カンマ、スペース区切りに対応し、修正は不要です
- 「重複なし」モード:誰も2回選ばれることなく、当選者やチームを抽出します
- 最大1000個の項目に対応し、1回の抽選で最大100個まで選択できます
- 組み込みのリストツール:ファイルからロード、シャッフル、並べ替え、クリア、サンプルデータ
- 履歴とファイルに保存:後から正当性を証明する必要がある場合のために記録を保持します
- 無制限で無料:サインアップ不要、使用制限なし、私たちのサーバーには何も残りません
ランダムな抽出は、後で決定について疑問を持たれても耐えうる必要があるあらゆる場面で登場します。教師はえこひいきすることなく生徒を指名し、クラスを文化祭のグループに分けます。配信者やマーケターは、結果を信じてもらう必要がある視聴者の前でプレゼント企画や福引の当選者を決定します。マネージャーは誰もやりたがらないタスクを割り当て、チームはプレゼンの順番や誰がオンコール待機するかを決めます。研究者は監査のために記録のランダムなサンプルを抽出します。家族はどの映画を見るかの言い争いを終わらせ、お腹をすかせた友人たちがランチの店を決めます。これらすべてのシナリオに共通しているのは、後から誰にでも説明できる選択であるということです。この抽選では暗号学的に安全な乱数を使用しており、処理はすべてデバイス上で行われます。後から誰かに結果を問われても、「履歴」に結果が保存されています。
このツールには、知っておくべきいくつかの誠実な制限があります。ピッカーは、リストに含まれる重複のない項目の数を超えて抽出することはできません。3人の当選者を決めるには少なくとも3つの名前が必要です。上限は200文字の項目が1000個までで、1回の抽選で最大100個まで選択できます。「シャッフル」と「並べ替え」ボタンは行ごとに機能するため、1行に貼り付けられたカンマ区切りのリストは、1行につき1つの項目に変換された後にのみ順序が並べ替えられます。また、どちらのボタンも抽出結果ではなくボックス内の項目を並べ替えるだけであり、項目がどのような順序であっても抽選は等しく公平に行われます。さらに、仕様上すべての項目は完全に同じ重みを持つため、抽選で2回分としてカウントされるべき名前がある場合は、その名前をリストに2回記述する必要があります。これらの制限の範囲内において、このツールの保証は強力です。すべての抽選において、リスト内のすべての項目は完全に同じ確率を持っています。