class Random

Random 为 Ruby 的伪随机数生成器(PRNG)提供了一个接口。 PRNG 生成一个确定性的位序列,该序列近似于真正的随机性。该序列可以用整数、浮点数或二进制字符串表示。

可以通过使用 Random.srand,使用系统生成的或用户提供的种子值来初始化生成器。

类方法 Random.rand 提供了 Kernel.rand 的基本功能,并更好地处理了浮点数值。这些都是 Ruby 系统 PRNG 的接口。

Random.new 将创建一个新的 PRNG,其状态独立于 Ruby 系统 PRNG,从而允许同时存在具有不同种子值或序列位置的多个生成器。Random 对象可以被编组,允许保存和恢复序列。

PRNG 当前实现为修改后的梅森旋转算法,周期为 2**19937-1。由于此算法用于加密用途,因此您必须使用 SecureRandom 来确保安全性,而不是使用此 PRNG。

另请参阅 Random::Formatter 模块,该模块添加了便捷的方法来生成各种形式的随机数据。