var cardColors = [ 'red', 'blue', 'yellow', 'black', 'white', ]; var cardShapes = [ 'triangle', 'square', 'pentagon', ] var maxValue = 10; function createCard(id, rareChance) { id = typeof id !== 'undefined' ? id : generateId(); rarechance = typeof rareChance !== 'undefined' ? rareChance : 0.25; var color = cardColors[Math.floor(Math.random() * (cardColors.length - (Math.random() < rareChance ? 0 : 2)))]; var shape = cardShapes[Math.floor(Math.random() * (cardShapes.length - (Math.random() < rareChance ? 0 : 1)))]; var value1 = Math.floor(Math.random() * maxValue) + 1; var value2 = Math.floor(Math.random() * maxValue) + 1; return { id: id, color: color, shape: shape, value1: value1, value2: value2, }; } function generateId() { var id = ''; for (var i = 0; i < 5; i++) { id += Math.floor(Math.random() * 10).toString(); } return parseInt(id); } function createPack() { var cards = []; for (var i = 0; i < 5; i++) { cards.push(createCard(undefined, i > 2 ? 0.5 : undefined)); } return cards; } function generateDatabase() { var db = []; for (var i = 0; i < 99999; i++) { db.push(createCard(i + 1, 0.5)); } console.log(db); var uriContent = "data:application/octet-stream," + encodeURIComponent(JSON.stringify(db)); var newWindow = window.open(uriContent, 'cardDb.json'); }