Rubyメモ: n 文字のランダム文字列を生成する

rand_str 関数を実装する

次の rand_str 関数は、指定した長さのランダム文字列を生成します。 使用する文字の種類は、第 2 引数 (chars) で指定することができます。

# chars の中からランダムに len 文字を選んだランダム文字列を生成します
def rand_str(len=7, chars='23456789abcdefghijkmnopqrstuvwxzy')
  arr = Array.new(len) do
    chars[rand(chars.length)]
  end
  return arr.join
end

# テスト
if $0 == __FILE__
  puts rand_str(10)
end
$ ruby rand-str.rb
rspgyta5h8

rand(n) 関数は、0 以上 n 未満のランダムな整数を返します。 chars[rand(chars.length)] とすることで、chars 文字列からランダムに 1 つの文字を取得できます。 あとは、これを指定された文字数 len だけ繰り返し取得して、すべて結合して文字列にすれば完成です。

参考