42 uint32_t upper_bound = to + 1 - from;
44#if defined(__GNUC__) && !defined(__EMSCRIPTEN__)
46 if (arc4random_uniform)
47 return from + arc4random_uniform(upper_bound);
55#if (ULONG_MAX > 0xffffffffUL)
56 min = 0x100000000UL % upper_bound;
58 if (upper_bound > 0x80000000)
59 min = 1 + ~upper_bound;
61 min = ((0xffffffff - (upper_bound * 2)) + 1) % upper_bound;
70 return from + r % upper_bound;