Генерация случайного числа между X и Y, исключая определенные числа

Есть ли способ сгенерировать случайное число в рубине, скажем, от 1 до 100, но исключая 20, 30 и 40?

Я мог бы сделать что-то вроде

def random_number
  random_number = rand(100) 
  while random_number == 20 || 30 || 40
    random_number = rand(100)
  end
  return random_number
end

... но это кажется не очень эффективным (плюс этот конкретный пример, вероятно, даже не сработает).

Есть ли способ попроще? Любая помощь высоко ценится!

5
задан Peter O. 5 August 2017 в 23:12
поделиться