каждой записи добавляем поле с её весом (например поле ves). в дальнейшем выбираем записи схематично так:
select top 10 *
from [table]
where rand()<ves/sum(ves)
где sum(ves) — сумма весов по полю в таблице.
гарантированно запись с весм 1 будет попадать в выборку в 3 раза реже, чем запись с весом 3.