random: added a random driver interface

how should this be designed?

I see this PR as a discussion forum for this long standing discussion
you can remove this line, `unsigned int < 0` is very rare anyhow... :-)