RANDOM NUMBER TOOL
指定した範囲から、必要な個数だけ一気に生成。抽選・テストデータ・くじ引き用途まで、これ1つで十分よ。
JavaScriptの Math.random() を使用した擬似乱数生成を行います。指定範囲内の整数を均等な確率で生成します。
乱数 = Math.floor(Math.random() × (最大値 - 最小値 + 1)) + 最小値
「重複なし」を選択した場合は、フィッシャー・イェーツのシャッフルアルゴリズムを使用して、範囲内の数値から重複なく抽出します。
Q. 真の乱数と擬似乱数の違いは?
A. 真の乱数は物理現象(放射性崩壊、電子ノイズなど)から生成され、完全に予測不可能です。擬似乱数はアルゴリズムによって生成され、初期値(シード)が同じなら同じ数列が再現されます。通常の用途では擬似乱数で十分ですが、暗号には真の乱数が必要です。
Q. 暗号学的に安全な乱数とは?
A. 暗号学的に安全な乱数生成器(CSPRNG)は、過去の出力から将来の出力を予測できない性質を持ちます。パスワード生成や暗号鍵にはWeb Crypto APIの crypto.getRandomValues() などを使用すべきです。本ツールは抽選やテストデータ用途を想定しています。
コンピュータで広く使われる擬似乱数アルゴリズムには、メルセンヌツイスタ(MT19937)があります。周期が2の19937乗−1と非常に長く、統計的な品質が高いため、シミュレーションや科学計算に適しています。
乱数は抽選・くじ引きだけでなく、ゲーム開発、モンテカルロシミュレーション、統計的サンプリング、テストデータ生成など幅広い分野で活用されています。用途に応じて適切な乱数生成方法を選ぶことが重要です。