It is not possible to generate uniform real number of infinite precision.
Therefore, it is not possible to pick a random value $U$ arbitrary precision uniformly at random so that $0 \le U \le 1$, and that any number in the range is possible.
Instead, it is (typically) necessary to generate sequence of uniformly random bits and interpret them as floating point number. For instance, you may generate 32 random bits and represent them as integer and divide the result with 4294967295. [Exception: Some sources have range that is not binary, like ideal dice. They still have limited precision.]
This part actually works the same regardless of if you had truly random source or if you used pseudo random number generator capable of generating bits to generate your random numbers.
However, Fisher-Yates shuffle or Richard Durstenfeld shuffle algorithm you linked to actually does not need arbitrary precision random numbers. It need random numbers, which are in range $0 \le j \le i$. These in theory can be derived from random and uniform arbitrary precision float number between [0, 1), but in practice, you instead need to generate bits (as described above) and use them to select array element to shuffle. Because the range is not always power of two, it is often necessary to use algorithm, which can convert numbers to specific range without generation of bias. FIPS 186-4 provides some algorithms useful to convert bits to arbitrary integer range. See Appendix B.2.1 and B.2.2 for two choices: allowing some bias or testing candidates and rejecting out of range values.