← ホーム

🎲 乱数生成

範囲内の乱数を生成。

點擊「Generate」

このツールとは?

乱数発生器 (RNG) は、各数値が前の数値と予測可能な関係を持たない順序で数値を生成するツールまたはアルゴリズムです。乱数の生成は、コンピューティング、暗号化、統計、ゲーム、科学シミュレーション、日常の意思決定の基礎です。 2 つのカテゴリがあります。1 つは数学的アルゴリズムを使用してランダムに見えるが実際には決定論的なシーケンスを生成する擬似乱数発生器 (PRNG)、もう 1 つは大気ノイズ、放射性崩壊、熱ノイズなどの物理現象からランダム性を引き出す真の乱数発生器 (TRNG) です。宝くじの数字を選ぶ、仮想サイコロを振る、ランダムなサンプルを選択する、プレイリストをシャッフルするなど、日常的なアプリケーションのほとんどには、高品質の PRNG があれば十分です。暗号化キーやセッション トークンの生成など、セキュリティが重要なアプリケーションの場合は、内部状態が検出されれば標準 PRNG を予測できるため、暗号的に安全な擬似乱数ジェネレーター (CSPRNG) が必要です。このツールは、指定した任意の範囲内で乱数を生成する簡単な方法を提供し、一意の (反復しない) 結果のオプションや、サンプリング、抽選、シミュレーションの数量をカスタマイズできるオプションを備えています。

計算方法

PRNG は通常、メルセンヌ ツイスターや線形合同生成器 (LCG) などのアルゴリズムを使用します。基本的な LCG 式は次のとおりです。X(n+1) = (a × X(n) + c) mod mここで、X はシーケンス値、a は乗数、c は増分、m は係数です。初期値 X(0) をシードと呼びます。 PRNG は決定的であるため、同じシードは常に同じシーケンスを生成します。 JavaScriptのMath.random()PRNG を使用しており、ゲームや UI 効果に適していますが、セキュリティのためには決して使用しないでください。暗号化の目的で使用するには、crypto.getRandomValues()ブラウザ内または秘密Python では、オペレーティング システムの CSPRNG から取得されます。公平なシャッフルのために、フィッシャー・イェーツアルゴリズム配列を反復処理し、シャッフルされていない残りの部分からランダムに選択された要素と各要素を交換し、完全に均一な順列を保証します。
Ad

使い方

このツールを使用して乱数を生成するのは簡単です。

  1. 範囲の最小値を入力します。
  2. 範囲の最大値を入力します。
  3. 生成する乱数の数を指定します。
  4. 一意の番号のみ (繰り返しなし) を使用するか、重複を許可するかを選択します。
  5. 「生成」をクリックすると、結果がすぐに表示されます。このツールは、指定した範囲全体に均一に分布する数値を生成します。これは、各数値が選択される確率が等しいことを意味します。ラッフルやサンプリングなど、各ピックが一意である必要があるアプリケーションの場合は、一意のオプションを有効にします。新しい数値セットを必要に応じて何度でも生成できます。クリックするたびに、以前の結果を記憶することなく、新しい独立した描画が生成されます。

参考表

使用事例代表的な範囲注意事項
抽選会(6/49)1 ~ 49、6 個の固有リピートなし、クラシックなフォーマット
標準的なサイコロロール1–61 つ以上のサイコロ
抽選会1–100+固有のチケット番号
ランダムサンプリング1-N統計調査、A/Bテスト
ボードゲームスピナー1–12ゲームの仕組み
コイン投げ0–1二者択一の決定
暗号化キー全バイト範囲Math.random ではなく CSPRNG が必要です

よくある質問

よくある質問

擬似ランダムと真のランダムの違いは何ですか?
擬似乱数ジェネレーター (PRNG) は数学的アルゴリズムを使用して、統計的にはランダムに見えますが完全に決定的なシーケンスを生成します。同じ開始シードが与えられると、常に同じシーケンスが再現されます。真の乱数発生器 (TRNG) は、大気ノイズ (Random.org で使用)、放射性崩壊、電子熱ノイズなどの予測不可能な物理プロセスからランダム性を導き出します。 TRNG は非決定的ですが、動作が遅く、コストが高くなります。ほとんどのアプリケーションでは、適切に設計された PRNG は真のランダム性と区別できません。

コンピューターで生成された乱数は予測できますか?
攻撃者が内部状態を推測するのに十分な出力を観察すれば、標準 PRNG を予測できます。このため、PRNG は、暗号化キー、パスワード生成、リアルマネーを使用したギャンブル システムなど、セキュリティを重視する目的には決して使用してはなりません。暗号的に安全な PRNG (CSPRNG) は、多くの出力を観察しても将来または過去の値を予測できないように設計されており、セキュリティ アプリケーションに適しています。

シードとは何ですか?なぜそれが重要なのでしょうか?
シードは、PRNG のシーケンスを開始する初期入力値です。同じシードは常に同じ数値シーケンスを生成するため、再現可能なシミュレーションやデバッグに役立ちます。シードを変更すると、まったく異なるシーケンスが生成されます。ほとんどのアプリケーションは、システム クロックまたはエントロピー ソースから PRNG を自動的にシードしますが、固定シードを手動で設定できる機能は、科学的な再現性にとって貴重です。

Random.org はどのようにして真のランダム性を生成するのでしょうか?
Random.org は、エントロピー ソースとして大気ノイズ (世界中の落雷によって生成され、ラジオ受信機によって捕捉されたラジオ ノイズ) を使用します。大気の騒音は基本的に予測できないため、結果として得られる数値は擬似ランダムではなく、真にランダムであると考えられます。このため、Random.org は、真のランダム性が重要となる一か八かの抽選、ギャンブル、科学研究に適しています。

ヒントとアドバイス

統計的サンプリングに乱数を使用する場合は、サンプル サイズが代表的となるのに十分な大きさであることを常に確認してください。意味のある統計的推論を行うには、一般的なガイドラインは少なくとも 30 項目です。抽選会やコンテストの場合は、重複した当選者を防ぐために固有の番号のみのオプションを使用し、透明性と公平性を維持するために方法論を文書化します。査読のために再現性が必要なシミュレーションを実行している場合は、固定シードを設定し、結果と一緒に記録します。セキュリティ アプリケーションには Math.random() や同様の PRNG を決して使用しないでください。常に JavaScript の crypto.getRandomValues() や Python の Secret モジュールのような CSPRNG を使用してください。カード ゲームとシャッフルの場合は、バイアスを導入する単純なシャッフル実装とは異なり、完全に均一なランダムな並べ替えを保証するフィッシャー・イェーツ アルゴリズムを使用します。暗号化用の数値を生成する場合は、可能な限り広い範囲 (全バイト値 0 ~ 255) を使用し、アルゴリズムの要件を満たすのに十分なバイトを生成します。AES-256 キーには、正確に 32 バイトの暗号化ランダム性が必要です。

Ad