Denne fyr
stiller det samme spørgsmål. Han siger det samme som Frank, men vægtningerne kommer ikke rigtigt frem, og i kommentarerne foreslår nogen at bruge ORDER BY -LOG(1.0 - RAND()) / Multiplier
, som i min test gav stort set perfekte resultater.
(Hvis nogen matematikere derude ønsker at forklare, hvorfor dette er korrekt, så oplys mig venligst! Men det virker.)
Ulempen ville være, at du ikke kunne indstille vægtningen til 0 for midlertidigt at deaktivere en mulighed, da du ville ende med at dividere med nul. Men du kan altid filtrere det fra med en WHERE Multiplier > 0
.