| 12345678910111213141516171819202122232425262728 | 
							- 'use strict';
 
- var crypto = require('crypto');
 
- // This string has length 32, a power of 2, so the modulus doesn't introduce a
 
- // bias.
 
- var _randomStringChars = 'abcdefghijklmnopqrstuvwxyz012345';
 
- module.exports = {
 
-   string: function(length) {
 
-     var max = _randomStringChars.length;
 
-     var bytes = crypto.randomBytes(length);
 
-     var ret = [];
 
-     for (var i = 0; i < length; i++) {
 
-       ret.push(_randomStringChars.substr(bytes[i] % max, 1));
 
-     }
 
-     return ret.join('');
 
-   }
 
- , number: function(max) {
 
-     return Math.floor(Math.random() * max);
 
-   }
 
- , numberString: function(max) {
 
-     var t = ('' + (max - 1)).length;
 
-     var p = new Array(t + 1).join('0');
 
-     return (p + this.number(max)).slice(-t);
 
-   }
 
- };
 
 
  |