This document shows pseudocode for many of the methods, and sample Python code that implements many of the methods in this document is available, together with documentation for the code. But for the normal distribution and other distributions that take on an infinite number of values, there will always be some level of approximation involved in this case, the focus of this page is on methods that minimize the error they introduce. This will be the case if there is a finite number of values to choose from. This page is focused on randomization and sampling methods that exactly sample from the distribution described, without introducing additional errors beyond those already present in the inputs (and assuming that an ideal "source of random numbers" is available).