random: added a random driver interface

how should this be designed?

I see this PR as a discussion forum for this long standing discussion
I don't get this. Is returning 1 meant to signal that more random data is needed?