Хм, своего рода цена — это приоритет. Тогда можно воспользоваться следующим алгоритмом.
У нас есть n приоритетов. (1, 2, 3… n). Мы создаем массив данных — куда загоняем баннеры по следующему правилу:
Каждый баннер будет загнан k раз, где k — приоритет. А потом из этого массива будем рандомно выбирать баннер для показа.
Баннер 1 = 1 рубль
Баннер 2 = 2 рубля
Баннер 3 = 3 рубля
Массив = (Баннер 1, Баннер 2, Баннер 2, Баннер 3, Баннер 3, Баннер 3)
Выбирая рандомно из этого массива вы как раз решите свою задачу.