use GammaSampler

The introduction of GammaSampler to capture the pre-computation & sampling for gamma random number generation simplify codes that rely on the generation of gamma random numbers.