array = [1, 2, 3, 4, 5]
array.each_index do |idx|
  jdx = rand(idx + 1)
  array[idx], array[jdx] = array[jdx], array[idx]
end
p array #=> [1, 4, 5, 2, 3]

大差ないですね。
----------------------------------------------------------------------
安達 広幸