Simplify id generation

Instead of using a SHA-256 of a random number, hex encode 16 bytes of random data from `crypto/rand` (sourced from /dev/urandom).