๐Ÿ“‹Random Duty Assigner

Enter people and duties to decide who takes what at random

How the Random Duty Assigner Works

Enter your people and your list of duties, and the assigner decides who takes what at random and lays it out in a table. It suits classroom cleanup rotas, office coffee duty, and club setup jobs, the kind of work everyone tries to push onto somebody else. Both boxes accept line breaks and commas as separators and drop empty lines, so a list kept in a notes app pastes in directly.

Identical names are treated as different people rather than merged. Up to 200 people and 50 duties are used, and the summary says so when either list was trimmed.

When the counts do not match

If there are fewer people than duties, each person takes one duty and the leftover duties are shown as unassigned. Nobody is given two duties at once, so you can either roll those duties over to the next round or shorten the list and run it again. If there are more people than duties, each duty first gets the same number of people and the remainder is added one at a time starting from the first duty. The summary states the base number per duty and how many duties got an extra person, so the layout never looks arbitrary.

How the shuffle works

The list of people is shuffled with the Fisher-Yates algorithm and then dealt out across the duties in order. Nobody can be dealt twice, and every person has the same chance of landing on any duty. Avoiding the duty somebody had last week is not supported.

Frequently Asked Questions

What if there are fewer people than duties?

Each person takes one duty and the remaining duties are marked unassigned. Nobody is given two duties at the same time.

What if there are more people than duties?

Each duty gets the same base number of people first, then the remainder is added one at a time from the first duty. Both numbers appear in the summary.

Can it skip whoever had the duty last time?

Remembering past rounds is not supported. To exclude someone, remove that name from the list and run it again.