Random Number Generation: Types And Techniques