Ruby 1.9.3 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Arrayクラス > sample

instance method Array#sample

sample -> object | nil
sample(n) -> Array
sample(opts) -> object | nil
sample(n, opts) -> Array

配列の要素を1個(引数を指定した場合は自身の要素数を越えない範囲で n 個) ランダムに選んで返します。

重複したインデックスは選択されません。そのため、自身がユニークな配列の 場合は返り値もユニークな配列になります。

配列が空の場合、無引数の場合は nil を、個数を指定した場合は空配列を返します。

srand()が有効です。

[PARAM] n:
取得する要素の数を指定します。自身の要素数(self.length)以上の 値を指定した場合は要素数と同じ数の配列を返します。
[PARAM] opts:
:random がキー、乱数生成器(Random オブジェクトなど)が 値のハッシュを指定します。0 以上 1 未満の値を返す test メソッ ドに応答するオブジェクトであれば値に指定する事ができます。 Kernel.#randRandom を使用しないオブジェクトを 指定した場合、Kernel.#srand の指定に影響されません。
[EXCEPTION] ArgumentError:
引数 n に負の数を指定した場合に発生します。

例:

a = (1..10).to_a
p a.sample        #=>  9
p a.sample        #=> 10
p a.sample(3)     #=> [1, 9, 3]
p a               #=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
class Array