Вот мой подход (с TypeScript).
Я решил написать еще один ответ, потому что я не видел ни одного простого решения, использующего современные js и чистый код.
const DEFAULT_ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
function getRandomCharFromAlphabet(alphabet: string) {
return alphabet.charAt(Math.floor(Math.random() * alphabet.length));
}
function generateId(idDesiredLength: number, alphabet = DEFAULT_ALPHABET) {
/**
* Create n-long array and map it to random chars from given alphabet.
* Then join individual chars as string
*/
Array.from({length: idDesiredLength}).map(() => {
return getRandomCharFromAlphabet(alphabet);
}).join('');
}
generateId(5); // jNVv7