What is the best way to generate a random number in Ruby?

What is the best way to generate a random number in Ruby?

How can I create a random number between 0 and n in Ruby? What methods are available for Ruby random number generation, and which one is the most efficient?

If you just need a quick way to generate a random number in Ruby, the rand method is your best friend. It’s super simple. Check this out:"

random_number = rand(10) # Generates a number between 0 and 9

Need a specific range? then use this

random_number = rand(1..10) # Generates a number between 1 and 10 (inclusive)

Honestly, for most cases, rand gets the job done with minimal fuss!

Using Random for More Control @yanisleidi-rodriguez Yeah, rand is great for quick numbers, but if you need more control, like repeatability or more predictable sequences, the Random class is a solid alternative.

rng = Random.new
random_number = rng.rand(1..10)  # Same as rand, but using an instance of Random.

The cool part? You can seed it to get the same sequence of numbers every time—great for testing

rng = Random.new(1234)  # Seeding makes results predictable
puts rng.rand(1..10)
puts rng.rand(1..10)

This way, if you’re writing tests that depend on random numbers, you can get consistent results. Super useful!

I like what you both said, but what if you need floating-point numbers? rand can do that too! random_float = rand # Gives you a number between 0.0 and 1.0 random_float = rand # Gives you a number between 0.0 and 1.0

Or if you want a random float in a specific range, just do: random_float = rand(1.0..10.0) # A float between 1.0 and 10.0

But wait—what if you need something more secure, like for generating random API keys or passwords? In that case, SecureRandom is your go-to.

require 'securerandom' secure_number = SecureRandom.random_number(100) # Random number between 0 and 99

Unlike rand, SecureRandom is cryptographically secure, meaning it’s much harder to predict. If security matters, this is the one you should use.