JSFiddle - React, Tailwind, and code Playground
JavaScript
function randomInt(max, min){
if(!min) min = 0;
return Math.floor(Math.random()*(max-min))+min;
};
function shuffle(array) {
var currentIndex = array.length, temporaryValue, randomIndex;
// While there remain elements to shuffle...
while (0 !== currentIndex) {
// Pick a remaining element...
randomIndex = Math.floor(Math.random() * currentIndex);
currentIndex -= 1;
// And swap it with the current element.
temporaryValue = array[currentIndex];
array[currentIndex] = array[randomIndex];
array[randomIndex] = temporaryValue;
}
return array;
}
var alphabetSampleData = '012354679';
var i, start, end;
start = ('A').charCodeAt(0);
end = ('Z').charCodeAt(0);
for (i = start; i <= end; i++){
alphabetSampleData += String.fromCharCode(i);
}
start = ('0').charCodeAt(0);
end = ('9').charCodeAt(0);
for (i = start; i <= end; i++){
alphabetSampleData += String.fromCharCode(i);
}
function GenerateAlphabet(size, notIn){
alphabetSampleData = shuffle(alphabetSampleData.split('')).join('');
var alphabet = '';
if (!notIn) notIn = '';
var i = 0;
while (alphabet.length < size && i < alphabetSampleData.length){
var c = alphabetSampleData[i];
if (notIn.indexOf(c) === -1){
alphabet += c;
}
i++;
}
return alphabet;
}
/// Good to use prime numbers here, sum should be smaller or equal to 62 (A-Za-z0-9)
var alphabetSize = 18, nullAlphabetSize = 18;
var myAlphabet = GenerateAlphabet(alphabetSize);
var myNullAlphabet = GenerateAlphabet(nullAlphabetSize, myAlphabet);
prompt("Here's your alphabet", myAlphabet);
prompt("Here's your null alphabet", myNullAlphabet);