ランダムソート 補足
前回sort_by{ rand }っていうのがでてきたけど間違えてsort_by{ rand n }とかやってしまうと台無しに。
irb(main):001:0> result = Hash.new(0) => {} irb(main):002:0> 1.upto(7000) {result[[0,1,2,3,4,5,6].sort_by{rand 7}[0]] += 1} => 1 irb(main):003:0> Array(result).sort.each {|key,val| puts "%d %d" % [key, val]} 0 1535 1 600 2 795 3 1111 4 868 5 757 6 1334 => [[0, 1535], [1, 600], [2, 795], [3, 1111], [4, 868], [5, 757], [6, 1334]]
容易に同じ数が出るようだと結果が偏ってしまう。
引数なしのrandなら0.0〜1.0のFloatが返るからまず実用上は問題なさげ。