RosettaCodeData/Task/Knuth-shuffle/Julia/knuth-shuffle.julia
2018-06-22 20:57:24 +00:00

11 lines
309 B
Text

function knuthshuffle!(r::AbstractRNG, v::AbstractVector)
for i in length(v):-1:2
j = rand(r, 1:i)
v[i], v[j] = v[j], v[i]
end
return v
end
knuthshuffle!(v::AbstractVector) = knuthshuffle!(Base.Random.GLOBAL_RNG, v)
v = collect(1:20)
println("# v = $v\n -> ", knuthshuffle!(v))