I often want to perform an action on an array X times then return a result other than that number. The code I usually write is the following:
output << Participant.new(all_friends.shuffle.pop, self)
sounds like you could use map/collect (they are synonyms on Enumerable). it returns an array with the contents being the return of each iteration through the map/collect.
def other_participants NUMBER_COMPARED.times.collect do Participant.new(all_friends.shuffle.pop, self) end end
You don't need another variable or an explicit return statement.