Add an optional seed parameter

We have to use math/rand instead of crypto/rand if seed
is provided.
for large values of `<num>` this will allocate tons of memory. I'll merge this in and add a buffered approach