well any true random generator is hard. take c++ for example: you have to import time to actually generate something random and then implement srand(time(0)). Since in c++, there is an algorithm for generating randomness, it actually means that the randomness can be broken and true randomness cannot be achieved through code. Srand is the closest in c++ to a truly random program. This is weird to understand but I hope this helps give you an idea of randomness in programming.