module function Kernel.#rand

rand(max = 0) -> Integer | Float[permalink][rdoc][edit]
rand(range) -> Integer | Float | nil

擬似乱数を発生させます。

最初の形式では max が 0 の場合は 0.0 以上 1.0 未満の実数を、正の整数の場合は 0 以上 max 未満の整数を返します。それ以外の値を指定した場合は max.to_int の絶対値が指定されたものとして扱います。

二番目の形式では range で指定された範囲の値を返します。 range の始端と終端が共に整数の場合は整数を、少なくとも片方が実数の場合は実数を返します。 range に含まれる数が無い場合は nil を返します。

まだ Kernel.#srand が呼ばれていなければ自動的に呼び出します。

擬似乱数生成器として Random::DEFAULT を使用します。これは Random.rand と共通です。

[PARAM] max:
乱数値の上限を正の整数で指定します。 max 自体は乱数値の範囲に含まれません。 0 を指定すると実数値の乱数を返します。
[PARAM] range:
発生させる乱数値の範囲を Range オブジェクトで指定します。 range の境界は数値でなければなりません。


srand(1234)     # 乱数の種を設定する。
rand            #=> 0.1915194503788923
rand            #=> 0.6221087710398319
rand(10)        #=> 4
rand(5.5)       #=> 0
                # rand(5) と同じ。 5 が乱数値の範囲に含まれないことに注意。

rand(1..6)      #=> 2                   (1 から 6 までの整数)
rand(0...10)    #=> 1                   (0 から 9 までの整数。終端を含まない)
rand(1.0..1.5)  #=> 1.1362963047752432  (1.0 以上 1.5 以下の実数)
rand(1.0...1.5) #=> 1.1382321275715483  (1.0 以上 1.5 未満の実数)
rand(1..0)      #=> nil

[SEE_ALSO] Kernel.#srand, Random#rand, Random