ORDER BY `вероятность`?
Я б сделал доп. поле в таблице, куда заносится вычисленный коэффициент (включая рандом), и сортировал по нему. Чтобы сортировка была случайной, пересчитывайте поле каждые n минут.
Можно попробовать использовать sphinx, и настроить систему ранжирования под Ваши нужды.

http://habrahabr.ru/blogs/sphinx/62287/