Мне понравилась краткость ответа Math.random (). ToString (36) .substring (7) от doubletap, но не то, чтобы в нем было так много коллизий, как правильно указывал hacklikecrack. Он генерировал 11-значные строки, но частота дублирования составляла 11% при размере выборки 1 миллион.
Вот более длинная (но все еще короткая) и более медленная альтернатива, в которой было всего 133 дубликата на выборке в 1 миллион. В редких случаях строка все равно будет короче 11 символов:
Math.abs(Math.random().toString().split('')
.reduce(function(p,c){return (p<<5)-p+c})).toString(36).substr(0,11);