random --- 乱数を生成する¶
このモジュールは擬似乱数生成器(PRNG)を実装します。PRNG は 32 ビットの Yasmarang 形式の LCG です。最初のインポート時に、os.urandom() が使用するのと同じハードウェアソースから 32 ビットのシードを 1 つ取得し、それ以降のすべての数値はそのシードの決定論的な関数となります。
警告
出力は暗号学的に安全ではありません。このアルゴリズムは短い出力シーケンスから予測可能であり、初期シードは 32 ビットのエントロピーしか持ちません。鍵素材、セッショントークン、パスワードのソルト、その他セキュリティが重要な用途には、代わりに os.urandom() を呼び出してください。
注釈
区間には次の表記法が使用されます。
() は開区間の括弧で、端点を含みません。たとえば (0, 1) は 0 より大きく 1 より小さいことを意味します。集合の表記では (0, 1) = {x | 0 < x < 1} です。
[] は閉区間の括弧で、すべての境界点を含みます。たとえば [0, 1] は 0 以上 1 以下を意味します。集合の表記では [0, 1] = {x | 0 <= x <= 1} です。
整数用の関数¶
浮動小数点数用の関数¶
その他の関数¶
- random.seed(n: int | None = None, /) None¶
乱数生成器モジュールをシード n で初期化します。これは整数であるべきです。引数を渡さない場合(または
Noneを渡した場合)、PRNG はos.urandom()が使用するのと同じポート固有のソースから再シードされます。
- random.choice(sequence: Any) Any¶
sequence(タプル、リスト、または添字操作をサポートする任意のオブジェクト)からランダムに 1 つの項目を選択して返します。