    # File lib/facets/core/string/self/random.rb, line 14
    def String.random(max_length = 8, char_re = /[\w\d]/)
      # gmosx: this is a nice example of input parameter checking.
      # this is NOT a real time called method so we can add this
      # check. Congrats to the author.
      raise ArgumentError.new('char_re must be a regular expression!') unless char_re.is_a?(Regexp)

      string = ""

      while string.length < max_length
          ch = rand(255).chr
          string << ch if ch =~ char_re
      end

      return string
    end