ZumaTools

Random Pair Generator

Paste names below and split them into random pairs or groups of three, shuffled fairly on your device.

0 names in the list

Options

Runs entirely on your device — names are never uploaded.

How it works

  1. Type or paste your names into the box, one per line. Blank lines are ignored, and the counter shows how many people are in the list.
  2. Open Options to switch from pairs to groups of 3, choose what happens to a leftover person, or turn on avoiding repeat pairs from earlier rounds.
  3. Click Generate — the pairs appear instantly. Re-generate for a new round, copy the results, and review previous rounds in the history below.

Frequently asked questions

How are the pairs chosen?
The list is shuffled with a Fisher–Yates shuffle driven by the Web Crypto API (crypto.getRandomValues) instead of Math.random, with rejection sampling to avoid modulo bias. That means every possible arrangement of pairs is equally likely, so nobody can claim the matching was rigged.
What happens when the number of people is odd?
You choose in Options. The extra person can be rotated into an existing pair to form a trio, or paired with the organizer — useful when you are running the session yourself and can absorb the odd one out. With groups of 3, any one or two leftovers are handled the same way.
How does the avoid-repeat-pairs option work?
The tool remembers every pairing from earlier rounds in this session and tries up to 300 fresh shuffles, keeping the arrangement with the fewest repeated pairings. With enough people it usually finds a repeat-free round; with small lists repeats eventually become mathematically unavoidable, and the tool tells you how many it could not avoid.
Can I use this for a gift exchange or Secret Santa?
Yes, for exchange formats where two people give to each other — each pair simply swaps gifts. Note that this makes mutual pairs rather than a one-way Secret Santa chain, so if you need A to give to B and B to give to someone else, a dedicated Secret Santa generator fits better.
Are the names I enter uploaded anywhere?
No. The shuffle, the history of rounds and the copy function all run locally in your browser with JavaScript. Nothing is sent to a server or stored after you close the tab, so it is safe to use with student rosters or employee names.

About this tool

This random pair generator turns any list of names into randomly matched pairs or groups of three. Paste one name per line, click Generate, and every round gives you a fresh, unbiased matching — for language practice partners, code review buddies, PE teams, lab partners, study groups or mutual gift exchanges. An odd headcount is handled the way you prefer: rotate the extra person into a trio, or pair them with the organizer so no one is left out.

Fairness comes from the randomness source. Instead of JavaScript’s ordinary Math.random, the tool shuffles with the Fisher–Yates algorithm fed by crypto.getRandomValues, the cryptographically secure generator your browser uses for encryption keys, with rejection sampling so every arrangement is exactly equally likely. Everything runs client-side: names are never uploaded, logged or stored, which matters when the list contains students or colleagues.

The session history makes the tool practical for recurring rounds. Each time you re-generate, the previous round is kept below the results, and the avoid-repeat-pairs option uses that history to search for an arrangement where nobody is matched with the same partner twice. It attempts hundreds of shuffles and keeps the best one, reporting honestly when the list is too small for a completely repeat-free round — with four people, for example, only three distinct pairings exist.

A few practical tips. Run several rounds at the start of a class or sprint and copy each one, and you have a rotation schedule for the whole period. If someone should never be matched — say, the facilitator — leave them off the list and use the pair-with-organizer setting when the count goes odd. And because each line is one entry, duplicate names will be treated as two different people, so skim the list before generating.

Related tools