What causes a random CTD?
Well... it's random.
But I hear your pain. Software coding ends with something like "In case of any error, close".
Maybe eventually games could be more like operational systems.
I mean, if a part of the code return a result that is "out of bonds",
the game could pause, present us with alternatives, like "this part of
your game just crashed, would you like to restart it, or ignore the error,
or at least save your game and restart the game for you".
OS are more intelligent, being able to recover from an error and resume
operation like nothing happened. Maybe in the future games can be somewhat similar.
Or maybe I'm a dreamer... but am I the only one?