每个
Random实例生成的数字将均匀分布,因此,如果将两个
Random实例生成的随机数序列组合在一起,则它们也应均匀分布。
请注意,即使结果分布是均匀的,您也可能要注意种子,以避免两个生成器的输出之间存在相关性。如果使用默认的no-
arg构造函数,则种子应该已经不同。从的源代码
java.util.Random:
private static volatile long seedUniquifier = 8682522807148012L;public Random() { this(++seedUniquifier + System.nanoTime()); }如果要显式设置种子(通过使用
Random(long seed)构造函数或调用
setSeed(longseed)),则需要自己进行处理。一种可能的方法是使用随机数生成器为所有其他生成器生成种子。



