Skip to content
instance method

Kernel#rand

(?0) -> ::Float
(::int arg0) -> ::Integer
(::Range[::Integer] arg0) -> ::Integer?
(::Range[::Float] arg0) -> ::Float?
rand(max=0) → number

If called without an argument, or if max.to_i.abs == 0, rand returns a pseudo-random floating point number between 0.0 and 1.0, including 0.0 and excluding 1.0.

Example
rand        #=> 0.2725926052826416

When max.abs is greater than or equal to 1, rand returns a pseudo-random integer greater than or equal to 0 and less than max.to_i.abs.

Example
rand(100)   #=> 12

When max is a Range, rand returns a random number where range.member?(number) == true.

Negative or floating point values for max are allowed, but may give surprising results.

Example
rand(-100) # => 87
rand(-0.5) # => 0.8130921818028143
rand(1.9)  # equivalent to rand(1), which is always 0

Kernel.srand may be used to ensure that sequences of random numbers are reproducible between different runs of a program.

Related: Random.rand.

Example
rand(100.0)        # => 64 (Integer because max.to_i is 100)
Random.rand(100.0) # => 30.315320967824523

Ruby version changes

  1. 3.0
See also #raise #Rational #puts #readline also in 4.1 · 3.4 · 3.3 · 3.2 · 3.1 · 3.0