Source: https://homepage.divms.uiowa.edu/~luke/classes/STAT7400/modules/mod_sim.pdf