Seating Chart Randomizer

Assign people to a grid of seats with optional pinned spots.

Open tool

Overview

The Seating Chart Randomizer assigns a list of people to a grid of seats with optional pinned spots, producing a clean printable layout ready for a classroom, a wedding, a workshop or a corporate offsite. Paste the names, set the grid dimensions, pin anyone whose seat is fixed, and the tool fills the remaining seats uniformly at random.

The tool is aimed at teachers rotating classroom layouts, wedding planners arranging tables, event organisers running mixer rounds and managers shuffling open-plan desks. Long-tail searches like "random seating chart generator", "classroom seating randomiser with pins" and "wedding table randomizer" all resolve here.

How it works

The tool models the layout as a 2D grid of seat slots. Pinned assignments are placed first so they are not disturbed. The remaining unpinned names are shuffled with a cryptographic Fisher-Yates pass — drawing bytes from the OS random source and using rejection sampling to keep the integer draw unbiased — and then placed left-to-right, top-to-bottom into the remaining empty seats.

If there are more names than open seats, the surplus is reported and not placed. If there are more open seats than names, the leftover seats are marked empty. A "swap constraint" option lets you exclude specific name pairs from sitting next to each other; the tool retries the shuffle until the constraint is satisfied or a retry cap is reached.

Examples

24 students in a 6x4 grid → tidy random layout with no two best friends adjacent
40 wedding guests across 5 tables of 8 → balanced random groups
Pin Alice at seat A1 → she stays, the rest shuffle around her
"Don't seat Bob next to Carol" → constraint respected

FAQ

Is the shuffle fair?

Yes. Fisher-Yates with cryptographic random bytes produces a uniformly random permutation of the unpinned names.

Can I lock specific seats?

Yes. Pin any name to a specific seat and the shuffle excludes that name and slot from the random pass.

How does the constraint solver work?

It retries the shuffle (up to a few thousand times) until no excluded pair lands in adjacent seats. For pathological constraints it warns that no solution was found.

Can I print the result?

Yes. The output is a clean HTML table with name cards; the browser print dialog produces a tidy seating chart with one click.

What about round tables?

Switch the layout to round-table mode and seats are arranged around a circular table with neighbour adjacency computed on the ring.

Try Seating Chart Randomizer

An unhandled error has occurred. Reload ×