Случайность, которая на самом деле не случайна: почему `random_u64()` ломает равномерное распределение
When random is not actually random enough

Остин Сейпп разбирает классическую ошибку: выбор элемента через `random_u64() % N` не сохраняет равномерность. На примере 10 чисел и 3 объектов видно, что один выбирается с вероятностью 40% вместо 33%. Автор предлагает использовать `random_choice()` с явными весами и рассказывает, как в проекте для Antithesis заменили все вызовы `random_u64()` на взвешенный выбор.
Например, если вы посчитаете количество предметов в коробке и увидите 10 синих и 5 красных, вы можете просто записать свои варианты как `[(Blue, 10), (Red, 5)]`, и итоговый выбор будет распределён так, как вы ожидаете.