Der arme Predator. Er weiß nachher gar nicht was er nehmen soll. ;)
Aber so ist das bei Programmiersprachen. Frag 20 Leute, was sie die empfehlen würden und du bekommst 20 Antworten.
Eigentlich gibt es auf die Frage auch keine einfache Antwort. Es kommt nämlich sehr stark darauf an, was du damit machen willst. Wenn du nur das grundsätzliche Prinzip kennen lernen willst ist es eigentlich egal, was du wählst. Später kannst du jederzeit noch sehr einfach umsteigen. Der Aufbau einer Programmiersprache ist im Grunde genommen überall der Gleiche.
EDIT:
Das sehe ich eigentlich nicht so. Zumindest nicht bei C#. Das ist durch des einfachere Objektmodell in einigen Fällen sogar schneller als C++, da dort nicht so viel Overhead entsteht. Es ist ja auch möglich Spiele komplett in C# zu schreiben und damit meine ich jetzt keine kleinen 3D-Spielchen, sondern echte Shooter und so. Es gibt auch schon jede Menge öffentlicher und kostenloser Gameengines, die man verwenden kann und auch schon ein paar echt geile Projekte bei denen der Quellcode öffentlich ist. C# ist also schon recht schnell auch wenn es nicht so maschinennah ist wie zum Beispiel C.
Du hast aber auch ein gutes Argument erwähnt, dass ich ganz vergessen hatte, was für Java und C# spricht. Der Garbage Collector erspart einem das mühselige Zerstören der Objekte. In anderen Sprachen muss man immer peinlichst darauf achten, das von Hand zu erledigen um so eventuelle Speicherlecks zu vermeiden. In sofern sind Java und C# schon recht anwenderfreundlich, da sie das von sich aus erledigen.

