乱数ジェネレーター
カスタム範囲で1個または複数のランダムな整数を生成 — すべてブラウザ内で完結。
オプション
結果
ランダムな数値とは何ですか?
ランダムな数値とは、事前に結果を確実に予測できないプロセスによって生成された値のことです。コンピューティングにおいて、乱数はある範囲から抽出されます。例えば 1 から 100 までの整数であれば、その範囲内のすべての値が等しい確率で現れるべきです。乱数は、音楽プレイリストのシャッフルからインターネット上の通信の暗号化に至るまで、あらゆるものの基盤となるため、実用上ランダム性の品質が非常に重要です。
本ジェネレーターは、あなたが定義した範囲(最小値と最大値の間、両端を含む)内で整数を生成します。1 個の数値または一度に複数を要求でき、必要に応じてバッチ内の各数値がユニークであることを要求できます。ランダム性はブラウザの暗号論的乱数ソースから得られ、ほとんどのプログラミング言語にある基本的な乱数関数よりはるかに強力です。
真の乱数と疑似乱数
コンピューティングには 2 種類のランダム性があります。真の乱数は、電子的な熱ノイズ、放射性崩壊、ユーザーのキーストロークのタイミングなど、予測不可能な物理現象から収集されます。真に予測不可能ですが、収集が遅いです。疑似乱数は、シード値から始まる決定論的アルゴリズムによって生成されます。同じシードが与えられると、常に同じシーケンスが生成されます。優れた疑似乱数生成器はランダム性のすべての統計検定に合格しますが、原則としてシードが分かれば予測可能です。
現代のブラウザは暗号論的に安全な疑似乱数生成器(CSPRNG)で両者を橋渡しします。オペレーティングシステムが収集したエントロピー(ハードウェアイベント、割り込みタイミングなどの物理的ソース)からシードを得て、そのシードを、統計的には真の乱数と区別がつかず、シードを知らなければ予測不可能な長い数値のストリームに展開します。本ツールが使用する crypto.getRandomValues はまさにその CSPRNG であり、出力はトークン生成、くじ引き、シミュレーションのシードなど、セキュリティに敏感な用途に適しています。
乱数ジェネレーターを使う場面
乱数は驚くほど多くの日常的なタスクで必要とされます。最も一般的なものは次のとおりです:
- ゲームとくじ引き。公平かつ透明に当選者を選び、サイコロを振り、くじを引き、プレイヤーをシャッフルします。
- サンプリングと調査。スプレッドシートから行のランダムなサブセットを偏りなく選んで監査や調査を行います。
- 統計の教育。その場でサンプルデータセットを生成し、生徒が分布や分散を実際に見られるようにします。
- 意思決定。引き分けを解消し、選択肢から選ぶ、あるいは決められない時に「ランダムに」レストランを決める。
- テストと品質保証。関数やフォームにランダムな入力を与えて、エッジケースやオフバイワンエラーを探ります。
- トークンとワンタイムコード。認証フローや一時アクセス用の短い数字コードを生成します。
公平性、予測不可能性、または偏りのないサンプリングが必要な場所なら、優れた乱数ジェネレーターが正しいツールです。
ランダム性とセキュリティ
セキュリティが絡む場合、すべての乱数が同等ではありません。弱い生成器(多くの言語にある通常の Math.random() など)はヘビゲームには問題ありませんが、十分な値を観察した後に予測できることがあるため、パスワード、セッショントークン、くじの結果の生成には全く不適切です。攻撃者は予測可能な乱数生成器を悪用して実際のシステムを破ったことがあります。
そのため、本ジェネレーターは基本的な乱数関数ではなく、ブラウザの暗号論的乱数ソース(crypto.getRandomValues)を使用します。暗号論的ランダム性は、数千の出力を観察した後でも、攻撃者が次の値を予測することが現実的でないように設計されています。推測に抵抗しなければならないもの(アクセスコード、くじの結果、セキュリティトークン)には、常に暗号論的ソースを使用し、通常の疑似乱数生成器に依存してはいけません。
乱数の生成方法
このツールで乱数を生成するのは 1 秒かからず、すべてブラウザ内で完結します。アップロード不要、登録不要、インストール不要です。次の 3 ステップで行います:
- 範囲と個数を設定。最小値と最大値を入力し、欲しい数値の個数を選び、重複を許さない場合は「重複なし」にチェックを入れます。
- 生成。「生成」をクリックして数値を生成します。クリックのたびに暗号ソースから新しい乱数値が抽出されます。
- コピー。「コピー」をクリックして数値をクリップボードにコピーするか、「クリア」で出力を消去してやり直します。
すべての数値はあなた自身のデバイス上で JavaScript によりローカルに生成され、ブラウザの暗号論的乱数ソースを使用するため、値がブラウザから外に出ることはありません。これにより本ツールは完全にプライベートで、くじ引き、トークン、その他のセキュリティに敏感な用途にも安全に使用できます。
この乱数ジェネレーターは無料ですか?
はい、完全に無料で、登録不要、透かしなし、デバイスのメモリ以外に制限はありません。
生成される数値は本当にランダムですか?
本ツールはブラウザの暗号論的に安全な乱数ソース(crypto.getRandomValues)を使用し、オペレーティングシステムのエントロピーをシードとしています。出力はくじ引き、トークン、その他のセキュリティに敏感な用途に適しています。
数値はどこかにアップロードされますか?
いいえ。すべての生成はローカルです。数値がブラウザから外に出ることはないため、どんな用途にも安全に使用できます。
「重複なし」にチェックしたが範囲が個数より小さい場合はどうなりますか?
本ツールは範囲が許すだけのユニークな数値を返して停止します。範囲より多くのユニーク値を抽出することは不可能だからです。完全なバッチを得るには、範囲を広げるか個数を減らしてください。