random: added a random driver interface

how should this be designed?

I see this PR as a discussion forum for this long standing discussion
@thomaseichinger yes, in case the callback returns 1, the driver is informed to call it again, if 0 is returned the driver will unregister the callback