Лучший способ получить уникальное значение - использовать Date () в виде миллисекунд.Это увеличивающееся представление времени никогда не повторится.
Сделайте так:
var RamdomNo = new Date().getTime();
Готово.
Редактировать
Если вы связаны с ограничениями по длине, приведенное выше решение не поможет вам, так как повторяемость предсказуема с использованием возрастающего числа, которое становится короче.
Тогда я бы предложил следующий подход:
// turn Integer into String. String length = 36
function dec2string (dec) {
return ('0' + dec.toString(36)).substr(-2);
}
// generate a 20 * 2 characters long random string
function generateId () {
var arr = new Uint8Array(20);
window.crypto.getRandomValues(arr);
// return 5 characters of this string starting from position 8.
// here one can increase the quality of randomness by varying
// the position (currently static 8) by another random number <= 35
return Array.from(arr, this.dec2string).join('').substr(8,5);
}
// Test
console.log(generateId());
Эта пара методов генерирует случайную строку длиной 40 символов, состоящую из букв и цифр.Затем вы выбираете последовательность из 5 последовательных символов.