knuth_shuffle.sf 249 B

123456789101112131415161718
  1. #!/usr/bin/ruby
  2. #
  3. ## Translation of: https://rosettacode.org/wiki/Knuth_shuffle#Perl
  4. #
  5. func shuffle (a) {
  6. { |n|
  7. var k = (n -> irand);
  8. k == n || (a[k, n] = a[n, k]);
  9. } * a.len;
  10. return a;
  11. }
  12. say shuffle(1..10 -> to_a);