In highschool you will HAVE to take the advanced math classes, trig, math analysis, Calculus (with one variable more then likely) As for a game designer, a few graphic art classes wouldn't hurt. Some highschool's offer classes like this, where computer modeling is the subject. Physics class is a good place to go as well.
If you are in college and want to change majors or havent declared one yet...I suggest getting a start at declaring a Computer Science major. That differs in requirement from school to school. But most often they require so and so credit hours of math, and a minor in some science.
Programmer and Game Designer are two completely different roles.
For a game programmer a Bachelors in Computer Science would be the way to go. Don't just take C++ courses because most game development companies want a well rounded and versatile programmer. I recommend completing coursework in the following areas:
1. Assembly - Unless you are a tools developer, chances are you would end up working on some sub system of the game engine. Quite often you're required to optimize the hell out of things and often there are few that can get the job done.
2. C & C++ - Many companies still use C for game development and the ones that don't are dealing with legacy C code so either way its important to understand both.
3. C# - While this is catching on in Indie game development, I don't forsee it taking over in the near future outside of XNA, however many companies develop their tools in C# as it is considerably easier to get a gui app up and running in C# rather than C++ and some GUI API. This also gives you the option of working as a game tools developers/designer.
4. Scripting (Lua and/or Python) - You'll need some understanding of scripting and Lua tends to be the one most used in game programming. Python is next in line.
5. Math - Linear Algebra, Discrete Math, Trig, Calculus, etc... The more the better. More math skills are expected from a game programmer than a Business App programmer.
6. Physics - This isn't always necessary, but it helps.
7. Data Structures and Algorithms - You'll need this!
8. Artificial Intelligence - Same as physics, you don't always need this but at least read a book on it... the subject matter can get pretty deep.
This coursework is really for a core logic programmer. Depending on what role you play you may also need OpenGL or DirectX for 3d programming and exposure to Maya or 3dsMax assets... not necessarily working knowledge of the apps, but you need to be familiar their data formats. In addition it would be a good idea to have some SQL skills in the event you are working on an MMO, but typically their are admins dedicated to that stuff.
If you are looking for more of the web game development skill set you'll need HTML, XML, JavaScript, SQL, Java, and ActionScript (Flash).
For game design you're expected to have Level Design skills, storyboarding, writing, intermediate to advanced artistic skills for mockups and level prototypes, exposure to audio and video assets and Scripting is a must (Lua and/or Python again). In general any skill is typically of benefit to a game designer. You'll even find guys with majors in history and minors in Folklore and Mythology as game designers rather than Science majors.
This may seem like a huge set of skills but unless you have an awesome portfolio, typically companies will hire the more rounded individuals even if they are purely developing in C++ alone.