This answer is a bit speculative, but I assume that the reason for this is because the random number generator should return uniformly evenly. There is nothing common in generating doubles evenly, because the doublets themselves are not evenly distributed.
Ignoring signs, doubles, or floating-point numbers is generally preserved in the form m * 2^e, where mthey ehave a fixed bit width, where it is minterpreted as a number between 0(inclusive) and 1(exception). This means that for large numbers the difference between two consecutive doubles is much greater than for small numbers. Thus, simply filling a double with random bits will not result in uniformly distributed pseudorandom numbers.
Instead, the solution is to fix the exponent eto 0 and select only a random mantissa mthat gives an evenly distributed double bond between 0 and 1. If you need random doubling in another range, you can multiply the number with the desired range:
double randomDouble = rng.nextDouble() * range;
, .