fs = require 'fs' async = require 'async' crypto = require 'crypto' async.parallel [ (callback) -> crypto.randomBytes 12, callback (callback) -> fs.readFile 'chosen-few.txt', 'utf8', callback ], (err, [rnd, data]) -> if err throw err words = [] for word in data.split(/\n/) words.push word password = [] for i in [0..3] random = rnd[i] << 16 | rnd[i+1] << 8 | rnd[i+2] console.log rnd[i], rnd[i+1], rnd[i+2], random password.push words[random % words.length] console.log password.join ' '