Script: randomize 100

So! This is a script I first tried to write in 2010 but gave up because I had no idea how. Today, I remembered that it was something I’d wanted to do, and gave it another go… and voilĂ !

There was a software several years back called EyeQ, which was supposed to help your reading speed and focus.
One of the exercises was that every day, the software would generate a board with the numbers 1 – 100, and you had to find them all in order, and the amount of time that took was somehow reflective of your cognitive abilities.

Sadly, EyeQ is no more, but if you want to do the find-the-numbers bit, here’s a script you can run to make a randomized chart in any given Google spreadsheet. This is a super rough draft, but it does what I want it to, and I’m putting it out there in case anyone might have any use for it. Have fun!

function scatter100(){
var ss = SpreadsheetApp.getActive();
var sheetName = '100Rando';
if(ss.getSheetByName(sheetName)) { var sheet = ss.getSheetByName(sheetName); }
else { var sheet = ss.insertSheet(sheetName); }
ss.setActiveSheet(sheet);
var valsArray1d = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.']
var numVals = valsArray1d.length;
var workRange = sheet.getRange(1, 25, numVals, 1);
var vertOutArray = [];
for (var a = 0; a < numVals; a++){
var thisItem = valsArray1d[a];
var newArray = [thisItem];
vertOutArray.push(newArray)
}
workRange.setValues(vertOutArray);
workRange.randomize();
var mixedArray = workRange.getValues().toString().split(',');
for(var b = 0; b < 20; b++){ var multiplier = b*20;
var startVal = multiplier + 0; var endVal = 20 + multiplier;
var thisRow = mixedArray.slice(startVal, endVal);
var outRange = sheet.getRange(1 + b, 1, 1, 20);
var rangedArray = [thisRow];
outRange.setValues(rangedArray);
}
workRange.clear()
var rowsToDel = sheet.getMaxRows() - 20;
var colsToDel = sheet.getMaxColumns() - 20;
sheet.deleteColumns(21, colsToDel);
sheet.deleteRows(21, rowsToDel);
sheet.setColumnWidths(1, 20, 50);
sheet.setRowHeights(1, 20, 45);
var wholeSheet = sheet.getRange(1, 1, 20, 20);
wholeSheet.setFontSize(18);
wholeSheet.setFontWeight('bold')
wholeSheet.setVerticalAlignment('middle')
wholeSheet.setHorizontalAlignment('center')
wholeSheet.setBackground('#333');
wholeSheet.setFontColor('#cFF')
}