UnitConv
乱数

乱数生成器

暗号レベルの整数・小数乱数。重複なし抽選モードと便利なプリセット付き

クイックプリセット

このツールについて

この乱数生成器は、指定した最小値と最大値の間で予測できない数値を生成します。整数でも、桁数を指定した小数でも生成でき、必要な個数を一度にまとめて取得できます。「重複なし」を有効にすれば、同じ数を繰り返さない公平な抽選ができ、抽選会や当選者選び、宝くじの番号選びに最適です。乱数はブラウザの暗号レベル乱数(crypto.getRandomValues)と棄却サンプリングから生成されるため、範囲内のどの値も等しい確率で出ます。サイコロ・コイントス・宝くじ・PINコードのプリセットも内蔵しています。

使い方

  1. 1 乱数を取り出す範囲の最小値と最大値を設定します。
  2. 2 生成する個数を選び、整数か小数を指定します。
  3. 3 宝くじのように重複を避けたい場合は「重複なし」にチェックを入れます。
  4. 4 「生成する」を押し、結果をコピーします。サイコロ・コイン・宝くじ・PINのプリセットも利用できます。

仕組み

乱数生成器では本当の公平さが重要です。本ツールは通常のMath.randomではなく、暗号学的に安全な乱数源であるWeb Crypto APIのcrypto.getRandomValuesを使用します。32ビットの乱数を偏りなく指定範囲へ写像するために棄却サンプリングを採用し、範囲が2³²で割り切れないことによる偏りを生む値は破棄して引き直すため、最小値から最大値までの各整数がまったく同じ確率になります。「重複なし」モードは部分的なフィッシャー–イェーツのシャッフルで、トランプを公平に切るのと同じアルゴリズムにより重複なく異なる値を引きます。小数モードは[0,1)の一様乱数を範囲に拡大し、指定桁で丸めます。すべてブラウザ内で完結し、サーバーには何も送信しません。

よくある質問

これらの数値は本当にランダムですか?

ブラウザの暗号学的に安全な生成器(crypto.getRandomValues)を使用しており、Math.randomよりはるかに強力で、公平な抽選やゲームに適しています。技術的には擬似乱数ですが、実用上は予測できません。

重複なしで数を引くには?

整数モードで「重複なし」をオンにします。宝くじのように重複なく異なる値を引きます。範囲内の異なる整数の個数を超える数は引けません。

整数ではなく小数を生成できますか?

はい。「小数」に切り替えて小数桁数を指定すると、範囲内の一様乱数をその精度に丸めた値が得られます。

入力データはどこかに送信されますか?

いいえ。生成はすべてブラウザ内で行われるため、入力・生成した内容が端末の外に出ることはありません。

関連ツール

数値の集合を要約するには統計計算機が便利です。基数変換には基数コンバーター、手早い計算にはパーセンテージ計算機をどうぞ。