I revised an alternate workaround to selecting the symbols you want to randomize by placing them in a specific layer. On first run it will create the layer if it can't find it. Also revised the original script to size proportinatly based on height, and place the items within the original parent layer:
var doc = app.activeDocument;
var sym = doc.symbols;
var fullSelection = doc.selection;
try { doc.layers["Symbols_To_Place"] }
catch (e) {
symLyr = doc.layers.add();
symLyr.name = "Symbols_To_Place";
alert("Select Symbols to randomize\nBy placing in \"Symbols_To_Place\" Layer.")
}
var symTgt = doc.layers["Symbols_To_Place"].symbolItems;
var symAry = [];
for (var s = 0; s < symTgt.length; s++) {
nm = symTgt[s].symbol.name;
symAry.push(nm);
}
for (var i = 0; i < fullSelection.length; i++) {
var sel = fullSelection[i];
var place = doc.symbolItems.add(sym[symAry[Math.floor(Math.random() * symAry.length)]]);
place.move(sel, ElementPlacement.PLACEBEFORE);
//Base it off the height
percent = sel.height / place.height;
place.height = sel.height;
place.width = place.width * percent;
place.top = sel.top;
place.left = sel.left;
sel.remove();
place.selected = true;
}