Feature #3649: Array#sample, Array#shuffle, Array#shuffle! で使用する乱数生成器を指定するためにオプショナル引数を追加する
http://redmine.ruby-lang.org/issues/show/3649

起票者: Kenta Murata
ステータス: Open, 優先度: Normal
カテゴリ: core, Target version: 1.9.x

Array#sample, Array#shuffle, Array#shuffle! の3メソッドは配列の要素に対して乱数を適用させるメソッドです。
これらのメソッドが使用する乱数生成器は Ruby インタプリタがデフォルトで持っているものに固定されており、変更することができません。

そこで、以下のように乱数生成器を指定できるよう、これらのメソッドに対してオプショナル引数を導入することを提案します。

gen = Random.new
[*1..6].sample(3, random: gen)
[*1..6].shuffle(random: gen)
[*1..6].shuffle!(random: gen)

追加する patch は、中田さんが作成した Array#sample への変更に対して、
私が Array#shuffle と Array#shuffle! への変更を追加したものになっています。


----------------------------------------
http://redmine.ruby-lang.org