Problem with urandom() is that when it has enough entropy it is a good RNG, but if it doesn't have enough entropy, then it can give insecure random numbers. And you can not know., because urandom() does not tell you if entropy is low.
Getting 256 random bit from
urandom is not too hard. Just boot your PC, do some stuff for a minute, and you will have an entropy pool which already is way bigger than just 256 bits.
You can also check the entropy pool witht his command:
cat /proc/sys/kernel/random/entropy_avail
If it returns a number >300, you are good to go to use
urandom as your RNG.
You could generate the private key yourself, by rolling a dice.
I would not recommend this.
Rolling a dice with the same hand, the same dice, the same table is WAY less random than using a proper RNG (like
dev/urandom).