GenerateRandomSearch

Table Rotation Generator

The problem with a seating plan is that everybody meets three people and then talks to them all evening. Moving guests between courses fixes that, but doing it by hand is genuinely hard — you are trying to partition the room differently each round while minimising who has already sat together, which is a known hard problem with no neat answer. This does the arithmetic, and rather than claiming a perfect plan it tells you exactly how many pairs have met and how many repeats you are carrying.

What this generator does

Repartitions the room, which is not what the pairing tools here do. The pair generator matches people two at a time across rounds; the team generator splits a list once. This splits the room into tables and then splits it *differently* each round, using a memory of who has already sat together, so guests meet new people rather than being reshuffled at random into the same company.

How to use this tool

  1. List everybody coming, one name per line.
  2. Set how many people per table and how many courses.
  3. Build the rotation.
  4. Check the coverage figure, and shuffle again if you get an unlucky one.

Understanding the controls

Everybody attending
One name per line, four or more. Names stay in your browser and are never uploaded.
People per table
The table count is derived from this and the guest list. Sizes always come out within one of each other, so nobody is at a table of two while others sit six.
How many courses
Each course is a fresh partition. More courses means more pairs meet — and eventually repeats, because a room can only be divided so many genuinely different ways.

Worked examples

16 guests, tables of 4, 3 courses
Typically 40 or more of the 120 possible pairs have met.
12 guests, tables of 3, 5 courses
Most of the room has met; a handful of repeats.
6 guests, tables of 3, 8 rounds
Repeats are unavoidable and are counted and stated.
13 guests, tables of 4
Tables of 4, 3, 3, 3 — never a table of one.

Common use cases

  • A wedding or party where guests move between courses
  • A networking dinner where the point is meeting people
  • A club or society meal that mixes newcomers with regulars
  • A conference dinner with tables that rotate between courses
  • Any long meal where the same four people is too few

How this generator works

Guests are seated one at a time into whichever table holds the fewest people they have already sat with, with ties broken at random and table sizes kept balanced. A record of every pair who has shared a table is carried between courses. This is a heuristic and the page says so: finding a provably optimal rotation is a hard problem, and a plan with three visible repeats beats an optimal one you have to take on trust. What the tool guarantees is the arithmetic — everybody seated exactly once per course, balanced tables — and it reports the repeats rather than hiding them.

Randomness and fairness

The draw decides the order guests are seated and breaks ties between equally good tables. The guarantees — everybody seated once per course, balanced tables — hold on every draw. Different presses give genuinely different plans, so it is worth generating two or three and taking the one with the best coverage.

For how randomness is produced across the whole site, see how Generate Random works.

Assumptions this tool makes

  • Everybody can sit at any table, and moving between courses is practical at your venue.

Limitations and good to know

  • It cannot honour 'keep these two apart' or 'seat these two together'. Every guest is interchangeable to it.
  • It does not know about accessibility, mobility or who should be near the top table.
  • The rotation is a good heuristic rather than a proven optimum, and the page reports the cost instead of claiming there is none.
  • It does not assign seats within a table, only which table.
  • The seating plan is not saved, so print or copy it before the evening rather than during it.

Common mistakes

Expecting no repeats at all
With a small room and several courses they are unavoidable. The coverage figure tells you how well the plan actually did.
Using it for a plan with real constraints
If two people must not sit together, this cannot express that. Fix those by hand after generating.

Practical tips

  • Generate three and keep the one with the highest coverage — they genuinely differ.
  • Print one card per guest with their table for each course; a full grid on every table causes negotiation.
  • Tables of four move better than tables of eight, and produce far more new pairs.

Privacy and your data

Your guest list stays in your browser. Nothing is uploaded, nothing is stored between visits, and no name is written into the page address. Analytics records that the tool ran and how many guests were seated, never a name.

Frequently asked questions

How is this different from the pair generator?
That pairs people two at a time and guarantees nobody is paired twice. This splits the whole room into tables of three or more and repartitions it each course, which is a different and harder problem with no clean guarantee.
Can it guarantee nobody sits with the same person twice?
Only when the numbers allow, and it will not pretend otherwise. The repeat count is shown on every plan so you know exactly what you are getting.
Can I keep couples together?
Not automatically. Enter them as a single line — “Sam and Alex” — if they should always move as one.