How to Randomly Pair People Up (Without Anyone Picking Partners)
The same two people reviewed every pull request
Nobody decided it. A pull request went up, whoever was already active in chat picked it up, and the same two names ended up on nearly every review. Half the team never read each other's code, and the two who did review were quietly carrying all of it. It took months to notice, because there was no policy to blame.
The fix was embarrassingly small. Paste the team into the team generator at the start of each sprint, set it to two people per group, post the pairs. That is all a random pair generator is, and it is the one thing this site never got round to explaining, despite the tool having done it since launch.
Why a pair generator is its own tool
Go looking and you will find a whole category of tools that sit apart from team generators: pair generators, partner pickers, pairing generators. The split is not an accident of naming. Dividing thirty people into five groups is a different question from matching every person with exactly one partner, and the second one comes up constantly. Think-pair-share. Lab partners. Peer code review. Mock interviews. Doubles for a tournament. Conversation partners at an event where nobody knows anybody yet.
PickerSpin has no separate pair page. The team generator in group-size mode, set to 2, is the pair generator and always has been. What follows is how to drive it and where it stops.
How to generate random pairs
- Open the team generator.
- Paste the names into the box, one per line or separated by commas. A column copied straight out of a spreadsheet works as it is.
- Switch the toggle from By number of groups to By group size, and set People per team to 2.
- Click Generate Teams. Each pair comes out as its own card. Copy All gives you a plain text list to paste into chat, an email or a lesson plan, and Shuffle Again (Same Names) re-pairs the same list without retyping anything.
No account, no download, and the names never leave the browser, which matters more than it sounds when the list is thirty real students.
What happens with an odd number
Twenty-five people do not divide into pairs, and until this week the honest answer was worse than the one the page advertised. The leftover person was left standing as a group of one. The tool page, the FAQ and an older post all said the odd one out joins an existing group, so the code now does what the site had been promising: twenty-five names come out as eleven pairs and one group of three.
The same rule holds at larger sizes. Eight people at three per group gives two groups of four rather than a three, a three and a stranded two. Nobody ends up in a group on their own.
Where random pairing earns its place
Classrooms: think-pair-share and lab partners
Think-pair-share only does its job if the pairs move around. When the same desk neighbours turn to each other every time, the strategy has a name and nothing else. Pasting the roster and generating fresh pairs takes about as long as writing the date on the board, and it is the difference between a routine and a ritual.
The other half of it is an argument you stop having. A student who genuinely cannot work with a particular partner is a situation to handle as a teacher rather than as a tool, but the everyday complaint that you put those two together on purpose does not survive a shuffle doing it. For picking one student rather than pairing all of them, the classroom spinner is the other half of the same problem, and there are more of these on the teacher tools page.
Work: code review, pair programming and onboarding buddies
The rotation from the top of this post is the common one. Assigning reviewers by who replies first concentrates both the work and the knowledge in a few people, which is fine right up until one of them takes a fortnight off. Re-pairing at the start of a sprint spreads both.
Pair programming assignments work the same way, as do onboarding buddies for someone's first week and partner rotations in a study group. The point is not that a random matching is the best possible one. It is that a decent matching made in five seconds beats an ideal one nobody gets round to making.
Everything else: game nights, and Secret Santa with a caveat
Trivia partners, doubles for table tennis, who is cooking with whom. Paste, generate, read them out.
Secret Santa deserves its own paragraph, because it looks like pairing and is not. Pairing produces mutual couples: if Alice is with Bob then Bob is with Alice. A gift exchange needs a one-directional chain, where Alice buys for Bob, Bob buys for Charlie, and nobody is buying for the person buying for them. You can still do it here. Set the group size to your full head count and the generator hands back the whole list as one shuffled group, at which point each person gives to the next name down and the last person gives to the first. That is a proper chain, one extra step.
Is the pairing actually random?
The list runs through a Fisher-Yates shuffle, and every swap draws from crypto.getRandomValues(), the browser's cryptographically secure generator, rather than Math.random(). It uses rejection sampling too, which sounds fussy and is not: taking a random 32-bit number modulo a small range quietly favours the low values, so draws that would land in the uneven tail are discarded and taken again. Every possible pairing of your list is equally likely, including the dull ones.
That is worth having when somebody asks why they have been put with the same person twice. You do not have to take my word for the generator either. The randomness page runs a live chi-squared test against the same source.
What it will not do
Stated plainly, because these are the cases where you want to know before you rely on it.
- It does not remember last time. Every generate is independent, so the same two people can land together twice running. That is what random means, and it is also genuinely irritating mid-rotation. Hit Shuffle Again and read the result before you post it.
- It cannot match two separate lists. Mentors against mentees, reviewers against documents, students against topics: those need a tool that takes a list A and a list B. This one shuffles a single list and pairs it against itself.
- There is no way to keep two names apart. If a particular combination genuinely cannot happen, pull those two out, pair everyone else, then place them by hand.
- It balances nothing. Skill, reading level, who speaks which language: a shuffle knows none of it. Where a pairing has to be balanced, split the list into two tiers first and pair across them, the same trick the random teams guide suggests for tournaments.
Pair a list now
- Open the team generator.
- Paste the names, switch to By group size, set it to 2.
- Generate, then Copy All to drop the pairs wherever people will actually read them.
One list in, pairs out, and nobody left standing at the front of the room waiting to be chosen. For a classroom, a sprint or a game night, that is usually the whole requirement.
How to Randomly Pair People Up (Without Anyone Picking Partners) — questions
How do I randomly pair people up online?
Open the team generator at pickerspin.co/team-generator, paste your list of names, switch from By number of groups to By group size, set People per team to 2, and click Generate Teams. Each pair appears as its own card, Copy All gives you a plain text list to paste elsewhere, and Shuffle Again re-pairs the same names.
What happens if I have an odd number of people?
The spare person joins an existing pair rather than being left in a group of their own, so twenty-five names come out as eleven pairs and one group of three. The same rule applies at larger group sizes: eight people at three per group gives two groups of four, not a stranded pair.
Can I stop the same two people from being paired again?
Not automatically. The generator has no memory of previous rounds, so every run is independent and the same two names can come up together twice in a row. If repeats matter across a rotation, hit Shuffle Again and check the result before you share it, or keep a note of past pairings.
Can it match two separate lists, like mentors and mentees?
No. It shuffles one list and pairs it against itself. Matching a list of mentors to a list of mentees, reviewers to documents, or students to topics needs a two-list matching tool, which this is not.
Can I use it for Secret Santa?
Yes, with one extra step. Pairing gives mutual couples, so Alice and Bob are matched to each other, which is not how a gift exchange works. Set the group size to your full head count instead: the generator returns the whole list in one shuffled order, and each person then gives to the next name down, with the last person giving to the first. That is a proper one-directional chain.
Is the pairing actually random?
Yes. The list is shuffled with a Fisher-Yates shuffle drawing from crypto.getRandomValues(), the browser cryptographically secure generator, with rejection sampling so no position is favoured by the arithmetic. Every possible pairing of your list is equally likely. You can test the same generator on the randomness page.
Is my list of names stored anywhere?
No. Everything runs in your browser. The names are never sent to a server or saved anywhere, so closing the tab is all it takes to get rid of the list. That matters when the list is a class roster of real students.