Skip to content

Instantly share code, notes, and snippets.

@JesseHerrick
Created December 4, 2015 01:23
Show Gist options
  • Save JesseHerrick/fff33648be66be7fbace to your computer and use it in GitHub Desktop.
Save JesseHerrick/fff33648be66be7fbace to your computer and use it in GitHub Desktop.
Like drawing out of a hat, but better!
# list of people to secret santa
names = ['Foo', 'Bar', 'John', 'Jim']
raise 'not even!' if names.count % 2 != 0
def assigned?(matches, person)
matched_people = matches.values
matched_people.include? person
end
matches = {}
names.each do |name|
assignee = name
while assignee == name do
assignee = names.sample
while assigned?(matches, assignee)
assignee = names.sample
end
end
matches[name] = assignee
end
puts matches.inspect
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment