RosettaCodeData/Task/Knuth-shuffle/Julia/knuth-shuffle.jl
2024-10-16 18:07:41 -07:00

11 lines
309 B
Julia

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))