Hello everyone! So, I have this code: #ticket database ticket1 = 88795 #ticket number quantity1 = 3 #quantity bought puts "\n" #break #lottery draw list = [] (list << '%05i' % (rand(99999)+1)).uniq! while list.length < 5 number1, number2, number3, number4, number5 = list serie1, serie2, serie3, serie4, serie5 = Array.new(5) { rand(180)+1 } number6 = number1.to_i - 1 number7 = number1.to_i + 1 number8 = number2.to_i - 1 number9 = number2.to_i + 1 number10 = number3.to_i - 1 number11 = number3.to_i + 1 number12 = number1.to_i / 100 number13 = number2.to_i / 100 number14 = number3.to_i / 100 number15 = number4.to_i / 100 number16 = number5.to_i / 100 number17 = number1.to_i % 10 puts list puts "\n" #break #winnings if ticket1 == number1.to_i prize1 = 400000 * quantity1 puts "Ticket ##{ticket1.to_s.rjust(5, '0')} won #{prize1}." end if ticket1 == number2.to_i prize2 = 125000 * quantity1 puts "Ticket ##{ticket1.to_s.rjust(5, '0')} won #{prize2}." end if ticket1 == number3.to_i prize3 = 50000 * quantity1 puts "Ticket ##{ticket1.to_s.rjust(5, '0')} won #{prize3}." end if ticket1 == number4.to_i prize4 = 20000 * quantity1 puts "Ticket ##{ticket1.to_s.rjust(5, '0')} won #{prize4}." end if ticket1 == number5.to_i prize5 = 20000 * quantity1 puts "Ticket ##{ticket1.to_s.rjust(5, '0')} won #{prize5}." end if ticket1 == number6.to_i or ticket1 == number7.to_i prize6 = 2000 * quantity1 puts "Ticket ##{ticket1.to_s.rjust(5, '0')} won #{prize6}." end if ticket1 == number8.to_i or ticket1 == number9.to_i prize7 = 1250 * quantity1 puts "Ticket ##{ticket1.to_s.rjust(5, '0')} won #{prize7}." end if ticket1 == number10.to_i or ticket1 == number11.to_i prize8 = 960 * quantity1 puts "Ticket ##{ticket1.to_s.rjust(5, '0')} won #{prize8}." end if ticket1.to_i / 100 == number12.to_i or ticket1.to_i / 100 == number13.to_i or ticket1.to_i / 100 == number14.to_i or ticket1.to_i / 100 == number15.to_i or ticket1.to_i / 100 == number16.to_i prize9 = 100 * quantity1 puts "Ticket ##{ticket1.to_s.rjust(5, '0')} won #{prize9}." end if ticket1.to_i % 10 == number17.to_i prize10 = 20 * quantity1 puts "Ticket ##{ticket1.to_s.rjust(5, '0')} won #{prize10}." end As you see, despite the lottery draw generator, code is not good at all. It works only for one ticket, is long and very manual. My question here is - can anyone help me to come up with a improvement, where I *generate a random amount of tickets with quantities 1-10; *check if any of those tickets win any of the prizes (mentioned in code above); *calculates the winnings by multiplying prize money with the quantity of ticket?