мои 2 цента, смещение может быть выполнено так:
Предполагая, что счет находится между 0, 100.
Вы случайным образом выбираете 5 записей, которые> 75, 3 записи> 50, 2 записи> 25, 1 запись> 0
Теперь, если вы снова случайным образом выберете эти 11 записей, он смещается в сторону более высокого балла.
Чтобы поместить их в sql, называется ваша объединенная таблица "abc"
Select * from (
select * from abc where b.points > 75 order by rand() limit 5
cross join
select * from abc where b.points > 50 and b.points <75 order by rand() limit 3
cross join
select * from abc where b.points > 25 and b.points <50 order by rand() limit 2
cross join
select * from abc where b.points > 0 and b.points <25 order by rand() limit 1
) as result
order by rand() limit 3
По производительности, я посмотрю вашу ссылку и обновлю этот ответ.