random: added a random driver interface

how should this be designed?

I see this PR as a discussion forum for this long standing discussion
not sure, I started to omit the filename here as I thought we decided that it is not need?!