Random Number Generators—Principles and Practices