class Random
Randomization Extensions¶ ↑
This library extends Array, String, Hash and other classes with randomization methods. Most of the methods are of one of two kinds. Either they “pick” a random element from the reciever or they randomly “shuffle” the reciever.
The most common example is Random::ArrayExtensions#shuffle, which simply randmomizes the order of an array's elements.
[1,2,3].shuffle #~> [2,3,1]
The other methods do similar things for their respective classes.
The classes are all extended via mixins which have been created within Ruby's Random class.
Credit for this work is due to:
-
Ilmari Heikkinen
-
Christian Neukirchen
-
Thomas Sawyer
NOTE: Inline QED tests are almost pointless here b/c… yea, it's random. So indtead of the usual `#=>` we use `#~>` which means approx. equal and prevens QED from making a hard assertion.
Public Class Methods
Module method to generate a random letter.
Random.letter #~> "q" Random.letter #~> "r" Random.letter #~> "a"
# File lib/facets/random.rb, line 50 def self.letter (Random.number(26) + (Random.number(2) == 0 ? 65 : 97) ).chr end