乱数ジェネレーター
範囲を指定して安全な乱数を生成。整数も小数も、重複あり・なし、ソートやシャッフルも選べます。一度に最大 10,000 個まで、ブラウザ内で処理します。
0 = 整数
乱数ジェネレーターとは?
最小値 と 最大値 の間で乱数を抽選するツールです。整数のほか小数点以下 10 桁までの数も生成でき、重複の回避、結果のソート、最大 10,000 個の一括出力に対応しています。乱数は Math.random() ではなく、ブラウザの暗号論的に安全な乱数生成器から得られます。
乱数ジェネレーターの使い方
- 最小値 と 最大値 を入力します(どちらも範囲に含まれます)。
- 必要な 個数 と 小数点以下の桁数 を設定します(整数なら 0)。
- すべての数を異なるものにしたい場合は 重複なし(ユニークな数) にチェックを入れ、並び順 と 区切り文字 を選びます。
- 生成 をクリックし、リストをコピーするかテキストファイルとしてダウンロードします。
例
Minimum 1, Maximum 49, How many 6, No duplicates, Sort ascending
16 19 27 40 44 48
値はランダムなので、結果は毎回異なります。
乱数ジェネレーターを使うべき場面
抽選やプレゼント企画、テスト用サンプルの選択、授業の演習、ゲームなど、公平で予測できない数が必要なときに使えます。規制されたギャンブルで求められる認定済み乱数生成器の代わりにはなりません。パスワードや鍵には、専用のパスワードジェネレーターやシークレットキージェネレーターを使ってください。
乱数ジェネレーターの仕組み
乱数のバイト列は crypto.getRandomValues から得ます。サイズ *n* の範囲から値を選ぶ際は 棄却サンプリング を使います。32 ビット(または 53 ビット)の整数を引き、*n* の最大の倍数を超える値を捨てるため、範囲内のすべての数が全く同じ確率になります(剰余バイアスなし)。小数は、刻み幅 10^-d の格子上で整数を引いて割ることで生成するため、小数点以下 2 桁で 0 から 1 なら 0.00 … 1.00 の 101 個の値のいずれかが等確率で得られます。ユニークな数には Robert Floyd のサンプリングアルゴリズム を使います。範囲全体を作らずに *k* ステップで *k* 個の異なる値を選び、その後 Fisher–Yates でシャッフルします。
一般的な使用例
- 応募者に番号を振ってプレゼント企画の当選者を抽選する
- 1 から 49 までの重複しない 6 個の数をロト風に選ぶ
- テストデータセット用のランダムな ID やサンプルサイズを生成する
- シミュレーション用にランダムな小数値(例:0.00〜1.00)を選ぶ
- 生徒や選手をランダムな順番に割り当てる
よくある質問
本当にランダムな数ですか?
オペレーティングシステムの暗号論的に安全な乱数生成器から crypto.getRandomValues 経由で得られる、予測不能でセキュリティ用途にも適した値です。棄却サンプリングにより、単純な剰余で生じるバイアスを取り除いています。
最小値と最大値は含まれますか?
はい。最小値 1、最大値 6 なら、サイコロのように 1 から 6 までのすべての値が出ます。
「重複なし」でエラーになるのはなぜですか?
範囲に含まれる異なる値の数は限られています。たとえば 1〜10 には 10 個の値しかないため、ユニークな数を 11 個得ることはできません。範囲を広げる、小数点以下の桁数を増やす、または個数を減らしてください。
負の数も生成できますか?
はい。-50 から 50 のように、負の最小値を指定してください。