乱数生成
乱数生成の使い方と、誰もが納得する公平な抽選のコツ
乱数生成はネットでいちばん単純な道具に見えます。数字を2つ入れると、数字が1つ出てくるだけです。それでも人はこのツールでプレゼントの当選者を選び、授業で当てる生徒を決め、番号を抽選し、アンケートのサンプルを取り、ちょっとした言い争いを収めています。どの場面でも、結果に意味があるのは全員がその結果を信じられるときだけです。このガイドでは使い方、プレゼント企画や教室でのアイデア、ランダムの本当の意味、真の乱数と疑似乱数の違い、そして抽選を正直に保つ習慣を紹介します。
乱数生成の使い方
操作はすべて1画面で完結します。「最小」にいちばん小さい数、「最大」にいちばん大きい数を入れるか、1–10、1–45、1–100 などのよく使う範囲をタップします。両端も含まれるので、1〜10なら1や10も出ます。マイナスの数も使え、それぞれの端は±10億まで入れられます。
次に選ぶ個数を1〜1000個の間で決めます。応募番号や座席番号のように同じ数字が二度出てはいけないときは「重複あり」をオフのままに。小さい順に並べたいときは「小さい順」をオンにします。「その他のオプション」では13のような数字や20-25のような区間を除外し、抽選名を付けられます。抽選ボタンを押すと、スロットのように数字が回ってから結果で止まります。
- 最小と最大を入れるか、よく使う範囲をタップする。
- 選ぶ個数を決める。
- 重複を許すか、並べ替えるかを選ぶ。
- 必要なら除外する数字と抽選名を入れる。
- 抽選を押して、数字か結果リンクをコピーする。
プレゼント企画・くじ引き・教室での使い方
ほとんどの使い方は、人や物に番号を振ってその番号を選ぶ形です。SNSのプレゼント企画なら、条件を満たした応募に届いた順で番号を振り、賞品の数だけ重複なしで抽選し、結果リンクを当選発表に添えましょう。リンクを開いた人は、抽選日時や設定まで入った元の結果をそのまま見られます。「フォロワー感謝企画」のような抽選名もリンクに入ります。
先生たちは授業を公平に、そして少しドキドキさせるために乱数を使います。全員に出席番号があれば、いつも同じ人ばかり当たるという不満がなくなります。
- くじ引き:範囲を配った券の番号に合わせ、賞品ごとに1人ずつ選ぶ。
- SNS企画:有効な応募に番号を振り、重複なしで抽選して結果リンクを共有する。
- 教室:次に答える人、ペア、発表の順番を決める。
- 職場:プレゼント交換の順番、議事録係、番号を振ったランチ候補から1つを選ぶ。
- 勉強と遊び:計算練習の数字、読むページ、好きな面数のサイコロを作る。
ランダムとは本当はどういう意味か
抽選がランダムだというのは、起こりうるすべての結果が同じ確率で、次の結果を誰も予測できないことです。ボタンを押す人も、コードを書いた人もです。短い間に均等にばらけるという意味ではありません。1〜10で何回か抽選すれば、同じ数字が重なったり続けて出たりするのはごく普通で、7が2回続く確率は、3の次に8が出る確率とまったく同じです。
人間はランダムのまねが下手なことで知られています。1〜10から1つ選んでと言われると7を選ぶ人が多く、1や10はあまり選ばれません。ランダムな数字を並べてと言われると、実際の確率よりずっと重複を避けてしまいます。だからこそ、誰が先にやるかのような小さな決めごとにも乱数が役立ちます。人の選び方に潜むクセを取り除いてくれるからです。
真の乱数、疑似乱数、そして暗号論的乱数
コンピューターは命令どおりにしか動かないので、何もないところからランダムを生み出せません。疑似乱数生成器はシードと呼ばれる初期値から出発し、計算式でランダムに見える長い数列を作ります。単純な方式はゲームには十分ですが、予測されたり、微妙なパターンが残ったりします。真の乱数は、電子回路の熱雑音やハードウェアのタイミングの揺らぎといった物理的なノイズから得られます。
今のブラウザーには暗号論的に安全な乱数生成器 crypto.getRandomValues があり、このツールはそれを使っています。OSがハードウェアのノイズでシードを補い、過去の出力から次の出力が分からないよう設計されているので、セキュリティの鍵作りにも使われます。さらに、モジュロバイアスというよくある失敗も避けています。大きな乱数を割り算の余りで小さな範囲に合わせると一部の数字がわずかに出やすくなるため、余った区間の値は捨てて引き直し、範囲内のすべての数字をまったく同じ確率にしています。重複なしの抽選には、20億通りの範囲でも動くシャッフル方式を使います。
公平で透明な抽選のためのコツ
公平な道具は公平な抽選の半分にすぎません。残りの半分は、あとで誰も結果を疑わないように準備することです。
- 先にルールを伝える:範囲、番号の振り方、当選人数。
- 抽選の前に応募者リストを確定し、誰が何番かを記録しておく。
- 一度出た結果をそのまま使う。気に入るまで引き直したら抽選の意味がない。
- 結果リンクを共有する。数字・設定・日時が入っているので、見る人は引き直しではなく元の結果を見られる。
- ライブでやるなら画面共有や配信で、数字が止まる瞬間をみんなで見る。
- 除外は売れ残りの券のように本当に無効な番号だけにし、そのことを公表する。