Вопрос: Как устроена математика в лутбоксах?

Лучший ответ: С точки зрения маркетинга, вам нужно будет указать потребителю (который открывает кейс), каков процент шанса на выпадение определенного предмета. В этом случае алгоритм довольно прост - делите определенные предметы по "классам" и устанавливаете шанс выпадения определенного класса (к примеру 1%-15%-30%-54% - по стоимости предметов соответственно). После этого, вы устанавливаете шанс на выпадение предметов в определенном классе (схема такая же). Либо вы этот шанс не будете указывать, но он все равно является ключевой задачей алгоритма.

Сам алгоритм: вы берете определение 1000 (больше, если оборот будет большой) открытий коробки, и распределяете в процентом соотношении на конкретные ID по этой тысяче (то есть у вас получается к примеру 10 человек получили золото, 150 получат серебро, 300 получат бронзу, 540 получат дырку от бублика) и рандомите все это, устанавливая определенные правила алгоритма (например, чтобы подряд не выпадали, или чтобы на каждые 200 дырок выпадало по 2 золота) и составляете цены. 
После 1000 открытий коробки счетчик сбрасывается и начинает крутить по новому.

А какую именно конфигурацию выпадения однотипных или разнотипных предметов использовать - решать вам. Зависит от оборота, маркетинга и прочего. В таких вопросах лучше не доверять ребятам с форумов, а нанять действительно хорошего специалиста, если сами не можете продумать конфиг.

Счетчик алгоритма лучше брать с запасом, ибо чем меньше счетчик, тем "палевнее" работа алгоритма. Когда у вас счетчик выпадения идет под 10.000, то все это выглядит действительно как "Рандом". Ибо в этом случае увеличивается число "комбинаций" выпадающих предметов за каждые 10 открытий (условно)

Худший ответ: Математика простая, нужно лишь использовать понятие математического ожидания.

Каждый предмет имеет некую стоимость либо в рублях, либо в игровой валюте, либо во времени, либо это некий аналог мощи/силы - не важно. Спросите у своего геймдизайнера (балансера), что почём. Прикручивая шанс к предмету, вы как бы уменьшаете его стоимость. То есть если Меч тысячи истин стоит 500 руб, то при шансе 1% его мат. ожидание будет 5 руб, очевидно. Далее просто складываете все мат. ожидания в сундуке - это будет мат. ожидание стоимости сундука, вот и берите его за основу. Затем можете увеличить или уменьшить эту стоимость сундука на некоторую величину, какую захотите, чтобы это было достаточно "честно" для вас. Как по мне, честность здесь сомнительная. Эту математику многие игроки тоже понимают, хотя бы интуитивно (когда шансы видны). Здесь нужна не честность, а баланс. Так что лучше делегировать всю эту математику геймдизайнеру, или кто там у вас отвечает за монетизацию.

Далее, в геймдеве часто используют как раз-таки, так называемый, нечестный рандом. Он может быть по-разному нечестный, но сути это не меняет. Например, более-менее справедливый вариант: если Меч тысячи истин (с шансом 1%) не выпадает с 200го лутбокса, то игра должна впихнуть его, чтобы игрок был в конце концов счастлив. А если игроку выпал этот Меч тысячи истин, то чтобы он более не выпадал следующие 50 лутбоксов, а то уж больно жирно. В целом, шанс так и остаётся 1%, так что обмана, как такового, нет. Но, конечно, если игроки будут знать эти детали, то начнут абузить вашу систему по-чёрному, что в итоге приведёт к искажению шансов. Как говорится, думайте сами, решайте сами, нужны или не нужны вам заявленные хорошие жирные шансы. Хотя в рамках маркетинга вы, конечно, можете использовать любые слова, но это уже лучше делегировать маркетологу. А здесь в вашем вопросе эти слова слегка неуместны.

К слову, в некоторых странах лутбоксы запрещены, так что учитывайте это. Оно и понятно. Декларировать разработчик может, что угодно, а реальные шансы могут быть сильно занижены или может быть вкручен сильно нечестный рандом.

Ещё к слову, каждая механика вводится для какой-то цели. Отталкивайтесь от этой цели, когда формируете состав лутбокса и прочие его особенности. То есть задача - добиться поставленной цели, а не просто ввести фичу для галочки. Обезьянничать - плохо. Нужно понимать, зачем в CSGO / DotA существуют лутбоксы и каким образом они делают игру лучше. Может быть, оно вам и не нужно вообще в вашей игре.