No. No Free Lunch Theorem means that there is no algorithm (that is programmed with no awareness of any specific search space) can be successful in ALL search spaces (problems).
But 2048 is a highly-structured search space. Even with random opponent, the opponent's choices are constrained by the game's rule structure.
The new tiles only appears on the opposite of your move direction. Your code does not seem to care about that. Maybe it will perform better if this is considered?
But 2048 is a highly-structured search space. Even with random opponent, the opponent's choices are constrained by the game's rule structure.
http://en.wikipedia.org/wiki/No_free_lunch_theorem