[Ruby 1.9-Feature#4147] Array#sample で重みを指定したい

チケット #4147 が更新されました。 (by Yoji Ojima)

ところで以前 naruse さんが (IRC で) 言ってたアイデアなのですが、
Enumerator で返すという API が考えられます。つまり、

e = %(大吉 中吉 小吉 凶).sample_each
e.each {|x| p x } #=> 凶 中吉 大吉 小吉

e = %(大吉 中吉 小吉 凶).sample_each(unique: false, weight: [1000, 100, 10, 1])
e.each {|x| p x } #=> 大吉 大吉 中吉 大吉 …

これなら悪くないと思います。
ただ sample_each.each となると少し変なので、名前は要検討かと。