乱数生成ツール
すべてブラウザ内で動きます。ファイルやデータが外部に送られることはありません。
このツールについて
範囲を決めて、必要な個数を入れて、ボタンを押すだけです。最小値と最大値の両方を含む整数を抽選するので、1 から 6 ならサイコロ、1 から 100 なら 100 枚の抽選券から 1 枚を引くのと同じです。「重複なし」にすると同じ数は二度と出てきません。サイコロではなく当選者を決めるときはこちらを使ってください。
本当にランダムなのですか?
数はブラウザー自身の乱数源である crypto.getRandomValues() から取っています。鍵やパスワードの生成に使われるものと同じ仕組みです。問題は、そのバイト列を 1 から 100 の数に変えるところで、多くのツールがここで偏りを作ります。剰余で範囲に折り込むと、256 は 100 で割り切れないため小さい数だけが余分に当たりやすくなります。Math.random() を範囲に掛ける方法も同じです。このツールは範囲を覆うのにちょうど足りるビット数だけを取り出し、範囲の外に出た抽選は捨てて引き直します。範囲内のどの数も出る確率はまったく同じで、抽選が信頼できるかどうかはそこにかかっています。使っているブラウザー機能については MDN を参照してください。
重複なしで抽選できますか?
できますし、最初からその設定です。重複なしは箱からくじを引いて戻さないのと同じ動きになります。範囲より多い個数を頼んだ場合、たとえば 1 から 5 で 10 個の重複なしを頼むと、5 個すべてと理由を説明する注意書きが返ります。範囲そのものは非常に大きくてもかまいません。1 から 10 億の中から重複なしで 20 個引いても一瞬です。範囲内の数を全部並べたリストを作らない仕組みだからです。
並び順も選べます。出た順のままにすれば、どの数が最初に出たかが分かるので、1 位・2 位・3 位を決めるときに便利です。順番が関係ないときは小さい順にすると、宝くじの当選番号のように読みやすくなります。
データはどこかに送信されますか?
いいえ。抽選はブラウザーの中だけで行われ、結果が外に出ることはありません。サーバーは関与せず、記録も残らず、他の誰にも見えません。その代わり、後から結果を証明することもできません。公開の抽選会なら、画面を全員に見える場所に置いておくのが確実です。
授業での指名、プレゼント企画の当選者決め、プレゼント交換の番号決め、サイコロをなくしたボードゲーム、誕生日の数字を使い切った宝くじの購入などに使えます。1 回の抽選で返せるのは最大 1,000 個です。範囲を逆に入力した場合は、自動で入れ替えて抽選します。