For something like this you'll need to livestream sensor data to figure it out. I've had that problem a few times in my rig and it was the wiring to the MAF sensor, I only figured it out due to running Torque Pro and having a live plot of MAF data vs. time. The MAF would randomly under-report air due to the wiring issues, which would then cause the computer to cut fuel and kill the engine. No codes. I'd plot MAF sensor data, commanded air-fuel data, and actual air-fuel data. Then you can see if the MAF is acting funny or if it is something else causing it to randomly go lean. Or, if you have an ignition/electrical issue causing the problem.