I think there’s a bigger problem with Torah Codes than the one Al Berko mentioned; namely, even if we were guaranteed accuracy in our Sifrei Torah, we would have this problem.
That problem is that there are several ways to refer to things, any number of letters to start from, and any number of letters to skip. In other words: you can’t prove the Divinity of a text using criteria which can be completely arbitrarily filled in.
Take, as an example, 9/11. The code hinting to 9/11 spots the word התאום, “twin,” if you count from the letter ה in לעיניהם, Bamidbar 20:8, every 36 letters; מגדלי, “towers,” if you count from the letter מ in למות, Bamidbar 20:4, every 71 letters; מטוס, “airplane,” if you count from the letter ם in ובעירם in Bamidbar 20:11, every -33 letters (oh, I forgot to mention that counting backwards is also legal); and מתקפת, “attack,” if you count from the letter ם in פעמים in Bamidbar 20:11, every -144 letters.
So let me get this straight. It says “twin,” “towers,” “airplane,” and “attack,” if you squint hard enough, so that must be a reference to 9/11 and therefore the Torah is from G-d?
Here’s the flaw with this argument. What are the words chosen? התאום and מגדלי - which I assume are meant to be read together as מגדלי התאום, “twin towers.” Why are they referred to as such, and not, say, מגדלים תאומים? Or מגדלי התאומים? Or some other conjugation? Well, it’s because that’s how it’s referred to in Hebrew - Modern Hebrew, which certainly doesn’t have any Divinity.
What about מטוס? Well, once again, that’s the wording used in Modern Hebrew for airplane. But why not use מטוסים?
The final word was מתקפת. Why not use מלחמה, “war”? Or הכאה, “smite”?
Okay, that’s cute, “it’s in Modern Hebrew, therefore it doesn’t count.” But the whole point is that it’s predicting the future - even using the language spoken then! Tell me, then: the attack was in America. Why not refer to it in English? Instead of using מטוס, transliterates it as אירפלאין (or whatever other combination you feel like using), and figure out how that fits in.
The answer, of course, is because that was the only way to make it work.
There’s more to 9/11 than the fact that airplanes crashed into the Twin Towers in an attack. I don’t see anyone conjuring up י״א ספטמבר ב׳א (“September 11, 2001”), which might also be referred to as עשתי עשר instead of י״א, or שני אלפים ואחד instead of ב׳א, or, for that matter, why not use the Julian date, or, better yet, the actual Hebrew date? What about the attack on the Pentagon, or the plane that crashed in Pennsylvania, or Al Qaeda, or Osama bin Laden, or, or...
The reason those are ignored is because they didn’t show up. So we handwave it, point to the few words that we got to work, and shout jubilantly in the streets, “The Torah is Divine!”
I don’t see anyone doing the same experiment on any other sufficiently long text (like, say, the King James Version, or all the works of Shakespeare lined up in chronological order of how he wrote them). You’d eventually be able to do the same thing; if there are enough variables to tweak, you will be able to make it work.
As the old quote says, “If you torture the data, they will confess.”