switch to underscore.js random function
tweaks for identifier generation