I have similar issue with my iPhone 4s as well. It turns off randomly, happened 5 times till now. I could remember that when ever its happening the battery is less than 50%, mostly in 30% range. One difference from the other peoples experience is that the phone does not power on what ever i do. I could also see little bit of heat in the back of the iPhone, so though the display is off I think iPhone is still running. I was able to switch it on after couple of hours and its intesting to see that time the % battery is almost zero. All the times iPhone powers on only when the battery is completely drained. Today i went to the Genius Bar, I explained to them the situation. They ran some diagnostics and said that battery is good. I thought that they will provide me with new phone. The person said that as they could not reproduce the issue he cannot provide me a new one. He has performed a DFU restore(Atleast I could remember thats what he said and took 6 to 7 min to do it) and said that I may not see the issue any more. He suggested that if it it happens again go to the nearest Apple Store. He really sounded dumb as he was asking me to go to apple store when ever it happens and what ever time it is, which apple store should i go if this happend at 10:00PM night(It happened once..), what should I do if I see the phone not woking when I are in office(which also happened once), should I drop every thing which I am doing and rush to apple store, fun. After I repeatdly asking these questions, he asked me to call the Apple Care(I have Apple care Plus on my phone) when ever ths issue happens next time. Hopefulley the issues is resolved with the restore. Is been 10 hrs now the and looks to be woking fine.
It happened again when i was writing this post now at Sunday 9:45 PM EST, tryed to reach apple care, do you know whats more fun, they are closed for the day and have to call during the business hours. I am planning to call Apple Care tomorrow morning. Not sure what the Apple Care rep is going to say, hoping that he will not repeat the same thing... Call us when the issue happnes, so that we can remotely diagnoise...
Will update the post with my experience.