乱数生成
オプション
出力
技術的な詳細
乱数生成器の仕組み
このツールでできること
乱数生成器は、Web Crypto API(crypto.getRandomValues)を使用して暗号学的に強いランダムな整数または浮動小数点数を生成します。剰余バイアスを排除するために棄却サンプリングを採用し、指定した任意の範囲で一様分布になることを保証します。最小値、最大値、精度を設定して、単一の値または乱数のバッチを生成できます。
開発者によくある利用シーン
開発者は、推測不可能なセッショントークン、ノンス、抽選番号の生成、またはデータセットからのランダムサンプリングなど、セキュリティに敏感なタスクに暗号学的乱数生成器を使用します。ゲーム開発者は、公平性が重要な場合にサイコロの出目やプロシージャル生成に利用します。QAエンジニアはファズテスト用のランダムなテスト入力を生成し、データサイエンティストは再現性が不要な場合のランダムサンプリングに使用します。
データ形式、型、またはバリエーション
このツールは、任意の範囲(両端を含む)での整数生成と、小数点以下の精度を設定できる浮動小数点数の生成に対応しています。棄却サンプリングは、範囲が乱数源の出力空間を均等に割り切れない場合に剰余バイアスを生む値を破棄します。基盤となるエントロピーは、OSのCSPRNG(WindowsではCryptGenRandom、Unixでは/dev/urandom)から提供され、ブラウザのWeb Crypto APIを通じて利用されます。
よくある落とし穴とエッジケース
暗号学的乱数は Math.random() より遅く、プレイリストのシャッフルのような非セキュリティ用途には不要です。棄却サンプリングは理論上、病的な範囲では何度もループする可能性がありますが、実際には無視できる程度です。ブラウザ生成の乱数は再現性のためにシードを設定できません。テストで決定的な列が必要なら、シード付きPRNGを使用してください。安全な最大整数の範囲は、JavaScriptの Number.MAX_SAFE_INTEGER(2^53 - 1)によって制限されます。
コードではなくこのツールを使うべき場面
単発の意思決定、手動テスト、または自作実装が期待範囲内の値を出しているかの確認のために、素早く偏りのない乱数が必要な場合はこのブラウザツールを使用してください。本番では、コード内で crypto.getRandomValues() を直接呼び出すか、アプリケーションのエラーハンドリングやログと統合できる言語標準のCSPRNG関数(Pythonのsecretsモジュール、JavaのSecureRandom)を使用してください。