Този човек
задава същия въпрос. Той казва същото като Франк, но теглата не излизат правилно и в коментарите някой предлага да използвате ORDER BY -LOG(1.0 - RAND()) / Multiplier
, което при моето тестване даде доста перфектни резултати.
(Ако някои математици искат да обяснят защо това е правилно, моля, просветете ме! Но работи.)
Недостатъкът би бил, че не можете да зададете тежестта на 0, за да деактивирате временно дадена опция, тъй като в крайна сметка ще разделите на нула. Но винаги можете да го филтрирате с WHERE Multiplier > 0
.