I see. Thanks for the explanation!
I think this might be fairly simple (at least, simpler than I was originally making it). I was trying to think of was of being able to mark fonts as “used” and have the script skip them. But I think an even easier answer is to use script you originally posted with just two minor tweaks.
First, somewhere around the font array declaration (var font = [];), add a variable with the font that you only want to use once:
var uniqueFont = “Comic Sans MSBold”;
Second, at the very end of the script (after all the curly braces), add:
app.selection[0].characters[Math.floor(Math.random() * app.selection[0].characters.length)].appliedFont = uniqueFont;
The idea here is to let the original script work as intended. It will randomly apply a font to every character. Then, when that’s finished, it will apply your uniqueFont to a single, random character. That should keep things nice and simple!