I'll figure out crypto.randomBytes, thanks for the tip!

> I played with this, and managed to occassionally get numbers less than 5 digits. 

ORLY? I manually tested by running this in a node REPL:
```
var r = function() {
  var pin = Math.floor(Math.random() * 999999) + "";
  while (pin.length < 6) { pin = "0" + pin }; 
  if (pin.length < 7) console.log(pin.length + ' ' + pin); 
}

for (var i=0; i < 10000000; i++) {
    r();
}

console.log('done');
```