Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Semrush - keyword research tool

Create your online store today with Shopify

Turn ChatGPT, Claude, Gemini, And CoPilot Into Your Personal Assistant, Business Coach, Content Creator, And More

AFFILIATE MARKETING Your all-in-one performance engine Manage affiliates, creators, and customer referrals in one unified platform—turning every partnership into measurable growth

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Disclosure: My content contains affiliate links.

43,693 questions

57,001 answers

573 users

How to generate an 8 digits random number in Ruby

1 Answer

0 votes
require 'securerandom'

# Module providing cryptographically secure 8-digit number and code generators.
module RandomCodeGenerator
  MIN_INTEGER = 10_000_000
  MAX_INTEGER = 99_999_999

  module_function

  # Generates a random 8-digit positive integer between 10,000,000 and 99,999,999 (inclusive).
  # Guaranteed to start with a non-zero digit (1-9).
  #
  # @return [Integer] An 8-digit positive integer.
  def generate_8_digit_number
    # SecureRandom.random_number(range) accepts a Range object and handles inclusive bounds natively
    SecureRandom.random_number(MIN_INTEGER..MAX_INTEGER)
  end

  # Generates an 8-character numeric string code between "00000000" and "99999999".
  # Preserves leading zeros, making it suitable for OTPs, PINs, or verification tokens.
  #
  # @return [String] An 8-character numeric string padded with leading zeros if necessary.
  def generate_8_digit_code
    # SecureRandom.random_number(n) returns an integer in the range [0, n - 1]
    raw_value = SecureRandom.random_number(100_000_000)

    # Kernel#sprintf or String#% formats the integer with 8 digits and leading zeros (%08d)
    format('%08d', raw_value)
  end
end

# ==========================================
# Example Execution & Usage
# ==========================================

if __FILE__ == $PROGRAM_NAME
  puts '=== Generating 8-Digit Integers [10000000 to 99999999] ==='
  3.times do
    number = RandomCodeGenerator.generate_8_digit_number
    puts "Generated integer: #{number}"
  end

  puts "\n=== Generating 8-Digit String Codes [00000000 to 99999999] ==="
  3.times do
    code = RandomCodeGenerator.generate_8_digit_code
    puts "Generated OTP code: #{code}"
  end
end


# run:
#
# === Generating 8-Digit Integers [10000000 to 99999999] ===
# Generated integer: 58343688
# Generated integer: 18510048
# Generated integer: 49900293
# 
# === Generating 8-Digit String Codes [00000000 to 99999999] ===
# Generated OTP code: 87737505
# Generated OTP code: 24294425
# Generated OTP code: 83647461
# 

 



answered Oct 2 by avibootz
...