Sampling from a distribution