На эту тему есть много очень статей (по крайней мере на Хабре я точно натыкался на такие).
Лично мне самое простое, что приходит на ум, это сделать весовые коэфициенты, величина которых будет зависеть от позиции статьи в рейтинге (чем меньше просмотров - тем больше вес).
Дальше можно усложнить алгоритм, заменив простой счётчик просмотров на хронологию показов и используя это распределение для более взвешенного ранжирования, чтобы старые статьи не мешали продвижению новых.