How to Generate Random Number in Ruby

Stewart Nguyen Feb 02, 2024
  1. Use the rand Method to Generate Random Numbers in Ruby
  2. Use the Array.sample Method to Generate Random Numbers in Ruby
How to Generate Random Number in Ruby

We’ll go over some methods for generating random numbers in Ruby in this article.

Use the rand Method to Generate Random Numbers in Ruby

The rand method generates a random number in Ruby. If there is no argument, the range will be 0 to 1.

The method rand takes an integer or a range as an argument. Take note that the outputs of the following examples are different in every run.

Example:

rand

Output:

0.6904532039551833

A value that is greater than 0 and less than 1 will be returned if rand is called without an argument. We can pass the argument to the function call to change the range.

Example:

rand(10)

Output:

7

In this example, rand(10) returns a random number between 0 and 9 (inclusive).

Example:

rand(10..20)

Output:

11

If you pass a range object to rand(), it will return a number between 10 and 20(inclusive). Use three(3) dot range 10...20 to exclude the maximum value.

Use the Array.sample Method to Generate Random Numbers in Ruby

Array#sample is another way to generate random numbers. To return a random number between 0 and 9.\

Example:

(0..9).to_a.sample

Output:

5

We can specify the maximum digits by providing an integer to the sample method, followed by Array.join. The result is a string.

Example:

(0..9).to_a.sample(4).join

Output:

"6349"

The following is what the code example above will do.

  1. Generate a range object from 0 to 9.
  2. Convert that range object to an array using Range#to_a.
  3. Return 4 random elements.
  4. Concatenate the elements in that array together using Array#join.

Related Article - Ruby Method