To fix the kerning problem just pick a monospaced font. Courier works well and is commonly used for code. Jim Terney (Digital Anarchy) created a plugin called Text Anarchy a long time ago. It forms the basis for the Text section of Red Giant Universe, so if you have that your work will be done in a couple of minutes.
Character offset can be used to randomly scroll through characters but the expression limiting the characters from 1 to 9 and then A - Z is not as simple as it may seem. The character value 64 is "A" and 91 is "Z" so you could randomize that range, but you would need character values between 49 and 57 to generate 1 through 9. You can preserve case and digits with Character Offset but you can't use Character Offset to switch between a letter and a number.
Another option to randomly cycle through those characters would be to use an expression. I Expressions from AE Scripts.com will automate this for you. I don't have time to write an expression for source text that will randomize the text for you, but it's pretty straightforward if you have a good handle on code. If you are getting paid for this job I expressions would probably solve your text problem and save you money.
Another option would be to create a small square comp and place a text layer inside that comp. Set the frame rate to something low like 8 frames per second, then animate a string of characters from left to right so they change from one letter to another on each frame. Pre-compose and then use a random expression and toFixed to generate a random position for the long text layer which moves it into the center of the frame. If the frame rate was 10 and you have 26 letters and 9 digits then the comp would be 35 frames long. The time remapping expression would be
frm = random(0, 3.4);
frm.toFixed(1)
Time remapping uses time in seconds so 35 frames would be between 0 and 3.4 seconds.
You could then use that comp in a comp that was big enough for your 40 X 40 frame and use the alignment tools to line up the rows and columns of random characters. As long as you select Preserve Frame Rate When Nested or in Render Cue, you could nest your 40 X 40 frame comp in another comp with a standard frame rate and maintain the same random speed of the character change.
As far as revealing or highlighting certain squares I would look at a combination of Card Dance and Fractal Noise. I use Card Dance when I need to randomly flip or change a grid of layers and it works in 3D if you need that kind of thing.
You could even just apply Mosaic after adding Fractal Noise to a layer to create a grid of different opacity squares.

Here's the project file for that comp. If I was better at expressions I would have just animated the source text using an expression. I think that would be easier than using character offset.
You have not mentioned whether or not you need the letters to decode into something or if you want different rates of change for each letter. That is all doable using expressions.