 
         0 :> c! 0 :> _f! ! initialize locals
         [
-            random-unit {
+            rnd (random-unit) {
                 [ 2. c - c * < ] [ 1. c - e^ c * <= ]
             } 1|| not
         ] [
-            random-unit pi * cos :> z
+            rnd (random-unit) pi * cos :> z
             r z * 1. + r z + /   _f!
             r _f - kappa *       c!
         ] do while
 
-        mu 2pi mod _f cos random-unit 0.5 > [ + ] [ - ] if
+        mu 2pi mod _f cos
+        rnd (random-unit) 0.5 > [ + ] [ - ] if
     ] if ;
 
 :: (triangular-random-float) ( low high mode -- n )


:: (gamma-random-float<1) ( alpha beta -- n )
    ! Uses ALGORITHM GS of Statistical Computing - Kennedy & Gentle
    alpha e + e / :> b

    0 :> x! 0 :> p! ! initialize locals
    [
        p 1.0 > [
            random-unit x alpha 1 - ^ >
        ] [
            random-unit x neg e^ >
        ] if
    ] [
        random-unit b * p!
        p 1.0 <= [
            p 1. alpha / ^
        ] [

    ! 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
    [
