class Random

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

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

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

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

PRNG 目前实现为修改版的梅森旋转算法,周期为 2**19937-1。由于该算法适用于加密用途,出于安全目的,您必须使用 SecureRandom,而不是此 PRNG。

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