乱数ジェネレーター

ランダムな数
次へ

指定した範囲で乱数を生成します。整数か小数かを選び、最小値と最大値を設定し、一度に生成する個数や重複を許可するかどうかを指定できます。ブラウザの暗号学的乱数生成器(RNG)を利用しているため、出力は統計的なランダム性テストに合格します。

乱数を生成する方法

  1. 1

    範囲を設定する

    最小値と最大値はどちらも含まれます。どちらも負の値を指定できます。

  2. 2

    種類を選ぶ

    整数か小数かを選びます。小数の場合は、表示する桁数を指定してください。

  3. 3

    個数と重複の可否を設定する

    重複を許可する(独立した抽選)か、すべて一意にする(同じ数値が2回現れない)かを選びます。

  4. 4

    生成する

    コピーモードに応じて、数値はカンマ区切り、または1行に1つずつ表示されます。

ここでいう「ランダム」とは

このツールは Web Crypto API(crypto.getRandomValues)を使い、OS のエントロピープールから乱数を取得します。32ビットに収まる範囲であれば、実用上は真の乱数と区別がつかず、dieharderTestU01 のテストスイートにも合格します。

非常に小さい範囲(2~255)では、剰余バイアス(モジュロバイアス)を避けるために棄却サンプリングを用います。これを行わないと、一部の数値の出現確率がわずかに高くなってしまいます。

主な用途

用途 設定
サイコロ(d6) 整数 1~6
宝くじのシミュレーション(49個中6個) 整数 1~49、個数6、重複なし
テストデータ(ID) 整数 1000~9999、重複なし
小数のシミュレーション 小数 0~1、6桁
コイン投げ 整数 0~1
N件の応募から当選者を選ぶ 整数 1~N、個数1

規制が関わる用途

法的要件や監査要件が伴う場面(賭博、公式の抽選、暗号鍵など)では、来歴の記録を備えた認証済みの RNG を使用してください。ブラウザの RNG は優秀ですが、認証は受けていません。

よくある質問

32ビットの乱数を10で割った余りを取ると、32ビット範囲の末尾の数個の値の影響で、9よりも0がわずかに多く現れます。小さい範囲ではこのバイアスは無視できますが、賭博レベルの公平性が必要な場合は棄却サンプリングを使うべきです(本ツールはこれを行っています)。

いいえ。Web Crypto API はシードを指定できません。これは仕様です。再現性が必要な場合(共有のテストデータ、科学実験など)は、シード対応の PRNG ライブラリを代わりにお使いください。

安全な整数では最大で 2^53 - 1 まで対応し、暗号用途以外であればほぼすべてのケースを網羅します。任意精度が必要な場合は、専用の多倍長整数ツールをお使いください。

はい。最小値と最大値はどちらも出力範囲に含まれます(表示している桁数の精度の範囲内で)。

関連ツール

このツールは他の言語でも利用できます