Test granularity, distribution, and inner range of crypto_rand* functions

In legacy/trac#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()