С точки зрения маркетинга, вам нужно будет указать потребителю (который открывает кейс), каков процент шанса на выпадение определенного предмета. В этом случае алгоритм довольно прост - делите определенные предметы по "классам" и устанавливаете шанс выпадения определенного класса (к примеру 1%-15%-30%-54% - по стоимости предметов соответственно). После этого, вы устанавливаете шанс на выпадение предметов в определенном классе (схема такая же). Либо вы этот шанс не будете указывать, но он все равно является ключевой задачей алгоритма.
Сам алгоритм: вы берете определение 1000 (больше, если оборот будет большой) открытий коробки, и распределяете в процентом соотношении на конкретные ID по этой тысяче (то есть у вас получается к примеру 10 человек получили золото, 150 получат серебро, 300 получат бронзу, 540 получат дырку от бублика) и рандомите все это, устанавливая определенные правила алгоритма (например, чтобы подряд не выпадали, или чтобы на каждые 200 дырок выпадало по 2 золота) и составляете цены.
После 1000 открытий коробки счетчик сбрасывается и начинает крутить по новому.
А какую именно конфигурацию выпадения однотипных или разнотипных предметов использовать - решать вам. Зависит от оборота, маркетинга и прочего. В таких вопросах лучше не доверять ребятам с форумов, а нанять действительно хорошего специалиста, если сами не можете продумать конфиг.
Счетчик алгоритма лучше брать с запасом, ибо чем меньше счетчик, тем "палевнее" работа алгоритма. Когда у вас счетчик выпадения идет под 10.000, то все это выглядит действительно как "Рандом". Ибо в этом случае увеличивается число "комбинаций" выпадающих предметов за каждые 10 открытий (условно)