Test granularity, distribution, and inner range of crypto_rand* functions
In #23061 (moved), we added tests for crypto_rand_double() that test:
- granularity: low bits being non-zero,
- distribution: some values above and below half, and
- inner range: mock crypto_rand() and generate lowest and highest valid results.
We should do the same for:
- crypto_rand()
- crypto_rand_int()
- crypto_rand_int_range()
- crypto_rand_uint64()
- crypto_rand_uint64_range()
- crypto_rand_time_range()
- crypto_rand_hostname()