Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

If you have a list of items and you want to randomly pair the items in the list together, what kind of algorithm would you use to do that, such that the items can only be matched to one other item.

share|improve this question
up vote 8 down vote accepted

Randomize the list and then grab pairs of adjacent items.

(I'm not sure I understand your last requirement, "the items can only be matched to one other item." If I haven't fully answered your question, please edit the question to expand on that point.)

share|improve this answer
I could be wrong, but I think the only way to interpret that last line is that if you generate a pair A-C (out of a list of values from A-Z) none of the other pairs can have either A or C. Repeat this until all items have been paired-off. So in a list of items numbering 'n' (where n is even), there will be 'n'/2 pairs with no pairs having an element in common. – Dan McGrath Nov 29 '11 at 4:38
That is correct Dan. – EpicOfChaos Nov 29 '11 at 4:58

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.