配列要素のランダム抽出でRuby1.8.7をチェック - 技術メモ的なモノと気になるモノ 元のget_random_dataはエラーが出てたので修正。Ruby 1.8.6以前ではあれこれ考えるよりも「sort_by { rand }」するのが手っ取り早い。 だが、Ruby 1.8.7になるとそんなイディオム知らなくても「shuffle」と言えばいいだけ。意図がわかって文字数減って楽チン。 def get_random_data(data,max_size=nil) max_size = data.size unless max_size data_list = data.dup #sliceを使うのでコピー (1..max_size).map {|i|data_list.slice!(rand(data_list.size))} end def shuffle_n(data,n=nil)