Deze man
stelt dezelfde vraag. Hij zegt hetzelfde als Frank, maar de wegingen kloppen niet en in de commentaren stelt iemand voor om ORDER BY -LOG(1.0 - RAND()) / Multiplier
te gebruiken , wat bij mijn testen vrijwel perfecte resultaten opleverde.
(Als er wiskundigen zijn die willen uitleggen waarom dit correct is, licht me dan alstublieft in! Maar het werkt.)
Het nadeel zou zijn dat je de weging niet op 0 kunt zetten om een optie tijdelijk uit te schakelen, omdat je dan zou delen door nul. Maar je zou het er altijd uit kunnen filteren met een WHERE Multiplier > 0
.