>>644 ダメポ
def hist(n,k)
a, h = 1..n, Hash.new(0)
(a.inject{|i,j|i*j}*k).times{ h[yield(a)]+=1 } ; h
end

n, k = (ARGV[0]||3).to_i, (ARGV[1]||100).to_i
h = hist(n,k){|a|a.sort{rand-0.5}}
h.sort_by{|i,j| [j*10/k,i]}.each{|i| p i}

>>650 スマン、最後はselection sortってどういうこと?
それは抜きにしても左右に振られるのがランダムであることから
等確率であることをいうのは飛躍が大きいと思われ。