RosettaCodeData/Task/Knuth-shuffle/Clojure/knuth-shuffle.clj

5 lines
162 B
Clojure

(defn shuffle [vect]
(reduce (fn [v i] (let [r (rand-int i)]
(assoc v i (v r) r (v i))))
vect (range (dec (count vect)) 1 -1)))