]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/random/random.factor
Merge OneEyed's patch
[factor.git] / basis / random / random.factor
index e0ce59dc876d9a4179c1c96bf725a11713ec314c..ebde3802b458066c58ddd7e948fd7a9ec6346b95 100755 (executable)
@@ -52,8 +52,10 @@ PRIVATE>
         [ length random-integer ] keep nth
     ] if-empty ;
 
-: randomize ( seq -- seq' )
-    dup length 1 (a,b] [ dup random pick exchange ] each ;
+: randomize ( seq -- seq )
+    dup length [ dup 1 > ]
+    [ [ random ] [ 1- ] bi [ pick exchange ] keep ]
+    while drop ;
 
 : delete-random ( seq -- elt )
     [ length random-integer ] keep [ nth ] 2keep delete-nth ;