#!/usr/bin/ruby # ## Translation of: https://rosettacode.org/wiki/Knuth_shuffle#Perl # func shuffle (a) { { |n| var k = (n -> irand); k == n || (a[k, n] = a[n, k]); } * a.len; return a; } say shuffle(1..10 -> to_a);