I used to have this problem, then bought a new starter, didn't have the problem for a little while, then it came back. Figured out that it was a bad connection issue at the starter. Then the same thing showed up later and it was the magnetic sensor in the shift lever area not sensing that it was in park, I figured that one out by shifting it to neutral and it would fire right up. Next time it happens try starting it in Nuetral with your foot on the brake, and see if that changes anything. If not, starter or starter connections.