From http://stackoverflow.com/questions/4356289/php-random-string-generator