Без смещения по всему диапазону
Превратить случайные биты в число внутри диапазона — то самое место, где большинство генераторов тихо ошибается: взятие остатка заставляет нижний край диапазона выпадать чуть чаще.
Этот отбрасывает значения, которые дали бы перекос, и тянет заново, так что 100 ровно так же вероятно, как 1 — в одном розыгрыше разница незаметна, через пару миллионов очевидна.