モジュール java.base
パッケージ java.util

クラスRandom

java.lang.Object
java.util.Random
すべての実装されたインタフェース:
Serializable, RandomGenerator
直系の既知のサブクラス:
SecureRandom, ThreadLocalRandom

public class Random extends Object implements RandomGenerator, Serializable
このクラスのインスタンスは、擬似乱数のストリームの生成に使用されます。その期間は248のみです。 クラスでは48ビットのシードを使い、このシードは線形合同法で変更されます。 (See Donald E. Knuth, 「The Art of Computer Programming, Volume 2, Third edition: 英数字アルゴリズム」, Section 3.2.1を参照してください。)

2つのRandomインスタンスが同じシードで生成されている場合、それぞれに対して同じシーケンスでメソッド呼出しを行うと、同じシーケンスで数値が生成され返されます。 この特性を保証するために、Randomクラスには固有のアルゴリズムが指定されています。 Javaコードの絶対的な移植性の保持のために、Javaの実装はここに示されているRandomクラスのアルゴリズムをすべて使用する必要があります。 ただし、Randomクラスのサブクラスは、すべてのメソッドの一般規約に準拠したものであればほかのアルゴリズムも使用できます。

Randomクラスによって実装されるアルゴリズムでは、各呼出しで擬似乱数的に生成された最大32ビットを提供できるprotectedユーティリティ・メソッドが使用されます。

多くのアプリケーションの場合、Math.random()メソッドを使うほうが簡単です。

java.util.Randomのインスタンスはスレッド・セーフです。 ただし、複数のスレッドで同じjava.util.Randomインスタンスを並行して使用すると、競合が発生してパフォーマンスが低下する可能性があります。 マルチ・スレッド設計では、代わりにThreadLocalRandomを使用することを検討してください。

java.util.Randomのインスタンスには安全な暗号化が施されていません。 セキュリティ保護を必要とするアプリケーションで使用するために安全な暗号化の施された擬似乱数ジェネレータを取得するには、代わりにSecureRandomを使用することを検討してください。

導入されたバージョン:
1.0
関連項目: