Generate random and unique strings in JavaScript
How I created an array of 5000 unique strings in JavaScript
As I was building the platform for my online course I had the problem of generating a few thousands unique URLs.
Every person taking the course will be assigned a unique URL. The backend knows about all those URLs and maps a valid URL to the course content.
I wanted a unique URL because I can associate a URL to a purchase email.
In this way, I can avoid having a login, and at the same time having a separate URL for each person lets me block eventual abuse if that URL gets unintentionally or intentionally shared in the public.
So I set out to write my Node.js script.
I used the randomstring package, and I added numbers to a Set object until I got the number I wanted. Using a Set means every string will be unique because calling add
and passing a duplicate string will silently do nothing.
I made a generateStrings()
function that returns the set:
const generateStrings = (numberOfStrings, stringLength) => {
const randomstring = require('randomstring')
const s = new Set()
while (s.size < numberOfStrings) {
s.add(randomstring.generate(stringLength))
}
return s
}
I can call it using
const strings = generateStrings(100, 20)
where 100 is the number of strings I want, and 20 is the length of each string.
Once we get the set, we can iterate over them using the values()
Set method:
for (const value of strings.values()) {
console.log(value)
}
→ I wrote 17 books to help you become a better developer, download them all at $0 cost by joining my newsletter
→ JOIN MY CODING BOOTCAMP, an amazing cohort course that will be a huge step up in your coding career - covering React, Next.js - next edition February 2025