#!/usr/bin/env ruby names = [ 'Allen', 'Vickie', 'Matt', 'Lisa', 'James', 'Pich', 'Kristen', 'Jason', 'Markie' ] hat = [] names.each do |name| hat.push name end buys_for = {} names.each do |name| while buys_for[name] == nil pick = hat[rand(hat.length)] puts "#{name} picks #{pick}" unless pick == name buys_for[name] = pick hat.delete(pick) end end end