Principles of Random Variate Generation.