Все зависит от того, будешь ли ты проводить такие розыгрыши часто или это однократная операция. А так же, готов ли ты к серии неудач для тебя (т.е. будет ли случайное число честным для участников розыгрыша).
Если решать задачу в лоб (честно), ты можешь представить шансы выпадения того или иного приза как отрезок на интервале от 0 до суммы цен всех предметов в розыгрыше, где длина этого отрезка - стоимость предмета. Затем каждый розыгрыш - это получение случайного числа на этом интервале , а попадание этого числа на отрезок соответствующего предмета - его выигрыш.
Это самый честный метод, ведь распределение на каждый рубль ценности призов равномерна. Недостаток метода - если проводить такие розыгрыши регулярно, по теории вероятности ты как тот кто оплачивает призы, можешь получить серию выигрышей дорогих призов.
Поэтому большинство розыгрышей делают не честным (например игровые автоматы), с целью убрать серию убыточных для организатора выигрышей, например выставляя условие, если общая сумма выигрышей прошедших розыгрышей выше некоторого лимита, то дорогие выигрыши исключаются из следующего розыгрыша. Так же как частный случай, можно заранее провести розыгрыши некоторого количества призов и если их сумма не превышает лимита, сохранить их список или сохранить стартовый seed генератора случайных чисел, чтобы иметь гарантии. У второго подхода есть уязвимость, сотрудники компании, имеющие доступ к этим сохраненным результатам, могут их использовать для повышения своих шансов на выигрыш, фактически грабя остальных участников.