Как управлять вероятностями появления поста (рейтинг, сортировка, "рекомендованное")?
1. прочитайте вот этот вопрос Как выбрать случайный элемент из списка с учётом его веса? , там Николай Панаитов дал хороший, годный ответ, и это содержит 70% ответа на ваш вопрос.
2. в качестве веса поста попробуйте: w=c+a*Log(1+лайков[пост])+b*Log(1+просмотров[пост])
3. в этой формуле коэффициенты a>=0, b>=0, c>=0 - это "ручки регулировки" для вашего отбора. Чем больше a, тем сильнее влияние лайков, чем больше b, тем сильнее влияние просмотров, чем больше c, тем больше "равных возможностей для всех".
Зависит от того где храните эти данные и в каком виде.

Например для MySQL можно указывать последовательность сортировки в ORDER BY