def mulder %w[モルダー あなた 疲れてる のよ].shuffle.each_slice(2).map { |ws| ws.map { |w| w.chars.each_slice((w.size/2.0).ceil).map(&:join) }.flatten.tap{ |_| break [_[2], _[1], _[0], _[3]] if rand(2) == 0 } }.flatten.insert(2, '、').join end loop.with_index(1) do |_, i| print "#{i}: " puts mulder.tap{ |_| exit puts(_).to_i if _ == 'モルダー、あなた疲れてるのよ' } end 1: のよ、あなたモルダー疲れてる 2: のてる、疲れよモルダーあなた 3: のよ、疲れてるあなたモルダー 4: