Eine Möglichkeit ist die Array-Funktion
shuffle(), in dem die Sequenz bereits vorher in der Datenbank gespeichert wird und jeder User einfach nur das oberste Item bekommt, oder über
array_rand() und
array_diff_key().
In jedem Fall müssen die User nacheinander ziehen, es muss sichergestellt sein, dass dieses Verteilarray nur ein einziges mal in valider Form existiert, da es sonst zu Fehlern kommen kann. Am besten erledigt die Zuteilung ein einziges Script.
Eine dritte, noch weniger gute Variante ist, die bereits verteilten Gegenstände zu speichern - und so lange Würfeln, bis eine Zahl kommt, die noch frei ist. Dauert im schlimmsten Fall aber ewig
Btw ist e_rand() für solche Fälle
nicht geeignet. e_rand() hat für die beiden Extrem-Werte nur eine ca halb so grosse Wahrscheinlichkeit wie für jede andere Zahl. Für e_rand(1,3) fallen ~50% der Fälle auf 2, 25% auf 1 und 25% auf 3.