module Random
Overview
Random provides an interface for random values generation, using a pseudo random number generator (PRNG).
Random.new_seed # => 112705036
Random.rand     # => 0.167595
Random.rand(5)  # => 2The above methods delegate to a Random instance.
r = Random.new
r.rand      # => 0.0372991
r.next_bool # => true
r.next_int  # => 2223112This module also defines a global method #rand, which Array#sample and Array#shuffle delegates.
rand     # => 0.293829
rand(10) # => 8Direct including types
Defined in:
random/mt19937.crrandom.cr
Constant Summary
- 
        DEFAULT = MT19937.new
Class Method Summary
- 
        .new(seed = new_seed)
        
          Initiates an instance with the given seed. 
- 
        .new_seed : UInt32
        
          Returns a UInt32read from a counter value generated by the cycle counter register.
- 
        .rand : Float64
        
          see #rand
- 
        .rand(x)
        
          see #rand(x)
Instance Method Summary
- 
        #next_bool : Bool
        
          Generates a random Bool.
- 
        #next_float : Float64
        
          see #rand
- 
        #next_int : Int32
        
          Generates a random Int32.
- 
        #next_u32
        
          Generates a random UInt32.
- 
        #rand(range : Range(Float, Float)) : Float64
        
          Returns a random Float64in the given range.
- 
        #rand : Float64
        
          Generates a random Float64between 0 and 1.
- 
        #rand(range : Range(Int, Int)) : Int32
        
          Returns a random Int32in the given range.
- 
        #rand(max : Int) : Int32
        
          Returns a random Int32which is greater than 0 and less than max.
- 
        #rand(max : Float) : Float64
        
          Returns a random Float64which is greater than or equal to 0 and less than max.
Class Method Detail
Returns a UInt32 read from a counter value
generated by the cycle counter register.
Instance Method Detail
Generates a random Int32.
Random.new.next_int # => 440038499
Random.new.next_int # => -1848788484Returns a random Float64 in the given range.
Random.new.rand(6.2..21.768) # => 15.2989Generates a random Float64 between 0 and 1.
r = Random.new
r.rand # => 0.167595
r.rand # => 0.0372991Returns a random Int32 in the given range.
Random.new.rand(10..20) # => 14Returns a random Int32 which is greater than 0 and less than max.
Random.new.rand(10)   # => 5
Random.new.rand(5000) # => 2243Returns a random Float64 which is greater than or equal to 0 and less than max.
Random.new.rand(3.5)    # => 2.88938
Random.new.rand(10.725) # => 7.70147