 
 :: (gamma-random-float<1) ( alpha beta -- n )
     ! Uses ALGORITHM GS of Statistical Computing - Kennedy & Gentle
+    random-generator get :> rnd
     alpha e + e / :> b
 
     0 :> x! 0 :> p! ! initialize locals
     [
         p 1.0 > [
-            random-unit x alpha 1 - ^ >
+            rnd (random-unit) x alpha 1 - ^ >
         ] [
-            random-unit x neg e^ >
+            rnd (random-unit) x neg e^ >
         ] if
     ] [
-        random-unit b * p!
+        rnd (random-unit) b * p!
         p 1.0 <= [
             p 1. alpha / ^
         ] [

    ! Based upon an algorithm published in: Fisher, N.I.,
    ! "Statistical Analysis of Circular Data", Cambridge
    ! University Press, 1993.
    kappa 1e-6 <= [
        2pi random-unit *
    ] [
        4. kappa sq * 1. + sqrt 1. + :> a
        a 2. a * sqrt - 2. kappa * / :> b

    ! Uses R.C.H. Cheng, "The generation of Gamma
    ! variables with non-integral shape parameters",
    ! Applied Statistics, (1977), 26, No. 1, p71-74
    random-generator get :> rnd
    2. alpha * 1 - sqrt  :> ainv
    alpha 4. log -       :> bbb
    alpha ainv +         :> ccc

    0 :> r! 0 :> z! 0 :> result! ! initialize locals
    [
