使い方
- 範囲を設定
乱数を生成する最小値と最大値を入力します。
- オプションを設定
生成個数、整数/小数、重複の許可・不許可を設定します。
- 乱数を生成
生成するボタンをクリックすると、設定に合った乱数が即座に生成されます。
乱数ジェネレーターとは?
乱数ジェネレーター(random number generator)は、人が予測したり意図的に選んだりできない数値を、指定した範囲の中から無作為に選び出すツールです。「最小値〜最大値」の区間を決め、何個取り出すか、同じ値が再び出てもよいか(重複あり・重複なし)を設定すると、条件に合う数値の一覧がすぐに表示されます。
どこで使うの?
- 抽選・イベント: 景品の当選者、発表順、チーム分けなど、公平性が大切な場面で人の偏りを取り除きます。
- ロト・番号選び: 1〜45の中から重複なしで6個といった、特定のルールの番号を選ぶときに使います。
- シミュレーション・標本抽出: サイコロやコインの模擬実験、アンケート回答者の無作為サンプリング、A/Bテストのグループ分けに役立ちます。
このツールはブラウザのcrypto.getRandomValues()を用いて、OSのエントロピーに基づく高品質な乱数を生成し、均等分布を崩す偏りを取り除きます。
計算式
範囲 [min, max] の中から整数の乱数を1個求めるには、次の式を使います。
結果 = min + ⌊ r × (max − min + 1) ⌋
- min / max: 範囲の最小値・最大値(どちらも含む)
- r: 0以上1未満の均等乱数
- max − min + 1: 取り得る整数の総数(= range)
例: min=1、max=45で r=0.732 のとき1 + ⌊0.732 × 45⌋ = 1 + ⌊32.94⌋ = 1 + 32 = 33
重複なしの場合は、すでに選ばれた値が再び出たら捨てて引き直します(リジェクションサンプリング)。したがって取り出す個数 ≤ rangeでなければならず、1〜45では最大45個までしか重複なしで生成できません。
よくある質問
この乱数ジェネレーターは本当にランダムですか?
ブラウザの crypto.getRandomValues() API を使い、OSのエントロピーに基づく暗号学的に安全な乱数を生成します。Math.random() よりも無作為性がはるかに高く、結果の予測は事実上不可能です。
Math.random() と crypto.getRandomValues() は何が違いますか?
Math.random() は疑似乱数で、内部シードがわかればシーケンスを再現・予測できます。一方 crypto.getRandomValues() は OS のエントロピー源を使う CSPRNG なので予測できません。抽選のように公平性・安全性が重要なら後者を使うべきです。
重複のない乱数を生成できますか?
はい、「重複なし」を選べばできます。すでに引いた数字と重なったら捨てて引き直すリジェクションサンプリング方式なので、結果に同じ値が二度現れることはありません。
なぜ「重複なしでN個を生成できない」というエラーが出るのですか?
重複なしで取り出すには、要求した個数が範囲内の数の個数(range = max − min + 1)より大きくなれないためです。たとえば1〜10で重複なしに15個は不可能です。範囲を広げるか個数を減らしてください。
ロトの番号を引くにはどう設定しますか?
最小値1、最大値45、生成個数6、重複は「重複なし」に設定すれば、韓国ロト(6/45)と同じ条件の番号が出ます。ボーナス番号まで見たい場合は個数を7に増やしてください。参考用であり当選を保証するものではありません。
小数(実数)の乱数も生成できますか?
はい、数値の種類を「小数」に変えると範囲内の実数を生成し、希望する小数点以下の桁数まで指定できます。たとえば0〜1の確率値や座標のような連続値が必要なときに便利です。
乱数に偏り(バイアス)はありませんか?
単に乱数を範囲で割った余り(剰余)だけを使うと、特定の数がより頻繁に出るモジュロバイアスが生じます。このツールは範囲の倍数を超える値を捨てるリジェクションサンプリングでその偏りを取り除き、すべての値が均等な確率を持つようにします。
同じ結果をもう一度再現できますか(シード)?
いいえ。このジェネレーターはシードなしで毎回新しいエントロピーから乱数を作るため、同じシーケンスを意図的に再現することはできません。抽選のように一度だけ公平に引く用途に適しており、再現が必要な実験には別途シードベースのツールを使うのが適切です。
2026年 検証済み数学公式