Allocation rules change the result
A random team split, a score-balanced roster, a partner matching, a seat permutation, and a position assignment all begin with names, yet they solve different mathematical problems. A partition divides people among containers; a matching makes disjoint pairs; a bijection links every player to one role. Choose the rule that matches the activity before entering a list.
Make eligibility explicit
Chance is fair only relative to the roster and constraints chosen before the result. Count each eligible person once, remove unavailable roles, reserve accommodations, and decide how a late arrival or an odd participant is handled. A browser can make a stated random selection transparent; it cannot decide who should be eligible.
Use ratings only for the question they represent
Balanced teams add the ratings supplied by the organiser. That can help spread a known skill measure, but it does not capture chemistry, positions, support needs, or current fitness. A random draw and a rating-based allocation are not competing versions of the same tool: one protects equal chance, while the other tries to equalize a stated total.
Keep an auditable record
For an activity where people may question the outcome, save the original roster, the stated rule, and the displayed assignment. That makes it possible to distinguish an entry error from an unwelcome but valid random result. Redrawing should follow a pre-agreed reason, not a preference discovered after names appear.
Make the procedure visible to participants
Before a result is generated, tell people whether the draw will create teams, pairs, seats, roles, or a rotating responsibility. Display the list long enough for spelling and omissions to be corrected, then keep the generated result with that list. This separates disagreement with an outcome from disagreement with the rule. It also makes a later adjustment legible: an accessibility change, an absence, or a new role can be recorded without pretending that the original random process said something it did not.