const randomWords = require('random-words'); words = []; async function generate(num) { return new Promise(function (resolve) { for (i = 0; i < num; i++) { words.push(randomWords()); } resolve(words); }) } //console.log(`${randomWords()}${randomWords()}`); async function random(max, min) { a = Math.floor(Math.random() * (max - min) + min); return a } async function run() { generate(10); // number of words to generate random(1, 10).then(a => console.log(words[a])); // random number 1-10, max must be equal to the number of words to generate random(1,10).then(a => { random(1,10).then(b => { console.log(`${words[b]}${words[a]}`) }) }); // these two nested functions calls are used to generate two words. } run()