使い方
- 「数字」「リストから選択」「コイン・サイコロ」から選びます。
- 数字の場合は、最小値、最大値、必要な個数、小数点以下の桁数を設定します。抽選のように重複なしで選ぶには、「重複なし」にチェックを入れます。
- リストの場合は、1行に1項目ずつ貼り付け、選ぶ個数を指定します。各行が選ばれるのは1回だけです。
- 「生成」または「選択」を押して、結果をコピーします。もう一度押すと、新たに抽選できます。
仕組み
数値はMath.randomではなく、ブラウザーに組み込まれた暗号学的に安全な乱数生成機能 crypto.getRandomValues から取得されます。範囲内の一部の値が出やすくならないよう、範囲の数値に変換する際は棄却サンプリングを使用します。ランダムな32ビット値が、範囲の大きさで均等に分割できない上端の端数部分に入った場合、その値は破棄して新しい値を取得します。単純に「乱数 % 範囲」とすると、小さい値がわずかに出やすくなります。
最小値と最大値はどちらも含まれます。小数点以下の桁数を指定すると、その桁数の刻み(小数点以下2桁なら0.01)に範囲が分割され、各刻みが同じ確率で選ばれます。そのため、0から1までを小数点以下2桁で指定すると、101個の値のいずれかが出ます。「重複なし」では、抽選のように同じ数値を再度選ばずに抽出します。範囲内の数より多くの異なる数値は抽出できません。その場合はツールが通知します。
リストから選択する場合は、Fisher–Yatesシャッフルで行を並べ替え、先頭からN個を選びます。各項目が選ばれる確率は同じで、同じ行が2回選ばれることはありません。同じ行が複数ある場合は別々の項目として扱われるため、2回記載された名前には選ばれるチャンスが2回あります。空行と、行の先頭または末尾のスペースは無視されます。
コインは表と裏が同じ確率で出ます。サイコロはそれぞれ1から6までが同じ確率で出ます。結果は保存されないため、私たちを含め、誰も抽選結果を確認したり再現したりできません。
使用例
宝くじ形式の抽選
最小値を1、最大値を49、個数を6に設定し、「重複なし」と「並べ替え」をオンにすると、4、11、23、30、37、45のように異なる6つの数値が得られます。
プレゼント企画の当選者を選ぶ
参加者を1行に1人ずつ入力し、3人を選びます。各参加者が当選できるのは1回のみで、全員の当選確率は同じです。
テスト用のランダムな小数
最小値を0、最大値を1、小数点以下の桁数を3にすると、0.274や0.901など、1,001個の値のいずれかが同じ確率で得られます。
よくある質問
数値は本当にランダムですか?
数値は、ハードウェアイベントをもとにオペレーティングシステムがシードを生成する、ブラウザーの暗号学的に安全な乱数生成機能から取得されます。抽選やセキュリティ用途に適しています。規制対象の宝くじでは、認定機器を義務付ける規則に従ってください。
最小値と最大値は含まれますか?
はい。1から6までの場合、1、2、3、4、5、6のいずれかが同じ確率で出ます。
「重複なし」にするとエラーになるのはなぜですか?
重複なしでは、範囲内にある数値の数を超えて抽出できません。1から10までの場合、異なる整数は10個だけです。範囲を広げる、小数点以下の桁数を増やす、または重複を許可してください。
後から抽選結果を確認したり、再現したりできますか?
いいえ。結果は保存されず、再入力できる値をもとにシードが生成されることもありません。公開抽選の場合は、画面を録画するか、結果をすぐにコピーしてください。
プライバシー
数字やリストの生成・処理はブラウザー内でのみ行われます。データが送信、保存されたり、分析に使用されたりすることはありません。