In theory, everything is simple, yes and no. You just need to create your own random generator, with all these exceptions, then no additional verification is needed. The generator is not needed numeric, but directly in hex
The random data is binary anyway. Why don't you use octal instead of hex? Or binary directly?
This is a very relevant question, because private key data and hashes are inherently binary. However, the choice of how to represent them in projects like a rainbow table is completely intentional
While everything is ultimately binary, hexadecimal provides a balance of compactness, readability, analyzability, and compatibility with cryptographic tools, making it a logical and standard choice for such projects.