Game balance is tough to achieve. It takes more than a little bit of art, and more than a little bit of science too. Each game is different, and each game requires different levels of balance in each of their elements to work properly.
It can be difficult even to discuss game balance, because there are different things that term could mean. Brad Talton of Level 99 Games posted about 5 Schools of Thought on Game Balance on his blog as part of a series of Core Design Articles. Since I like my games to be fair contests between the players, I put a lot of thought into what Brad refers to as Local Balance. Every designer has their own method for balancing game elements, such as Buildings (Homesteaders), Tenant Improvements (Ground Floor), Technologies (Eminent Domain), Helpers (Last Will), Recruits (Euphoria), etc.
No matter how they are represented in the game, here's a 5 step process that I often use to make sure these game elements are balanced - that is to say similarly powerful. This is especially important when the elements are obtained by a random draw.
Step 1: Find the unit.There's usually a baseline resource, or unit, such that other game elements can be expressed in terms of that unit. For example, in Ground Floor each worker costs $3 per round, and gives you 3 Time discs per round. Each player has a Meeting Room which will turn 1 Time disc into 1 Info. So as a baseline, $1 = 1 time unit = 1 info... that's the unit. You spend the game trying to alter that, buying floors and remodeling rooms in order to get a better return out of your worker placements than just 1 unit, but in order to determine how much better a return, it's useful to have that baseline for comparison.
Failing to understand the unit in a game can easily lead to unbalanced or unfair game elements. A card that gives you 3 Food might look similar to a card that gives you 4 Wood for the same cost, because 3 is about the same as 4. So you might think that's an OK balance. But if it turns out that Food is twice as expensive/hard to get as Wood, then those two cards may not be so well balanced after all! You need to know the values of each resource relative to each other in order to balance the game element.
An important thing that factors into these values is opportunity cost. In the example above, I said Food might be twice as hard to get as Wood - but what does that mean? Maybe it only takes 1 worker to forage and produce 1 Food, while it takes 2 workers to cut down a tree and create 1 Wood. If that's the case, the opportunity cost of 3 Wood (6 workers that could have been doing other things) is higher than the opportunity cost of 4 food (4 workers that could have been doing other things). What you have to decide is whether the difference of 2 worker placements worth of "other things" is close enough for those two cards to be considered well balanced, or if 3 Wood is always just better than 4 Food.
Usually there's an easy way to measure those "other things" your workers might be doing instead - and spoiler alert... that's usually how you find the unit.
Step 2: Determine the desired power level of the game elements.About how strong do you want these elements to be? Should they generate 1 unit worth of effect each time a player uses it? 2 units worth? Should they allow players to make useful in-game exchanges but not net them any actual resource gain?
You can't really move on until this question is answered. If you're not sure, then choose one thing that you have in mind as the quintessential example of that game element, and let that set your power level. Make all other elements comparable in strength to that one.
Failing to do this step is an easy way to end up with an unbalanced game element... if you don't know how strong you want the elements to be, then it is easy to make wildly varying strengths or values - you need a guideline.
Step 3: Design the game elements (keeping steps 1 and 2 in mind).Here's where you make a pass at designing the game elements. You choose what you want each element to do, how much you want it to cost, and how many points you want it to be worth. There are many knobs you can turn to help you tune the elements to be the correct power level (chosen in Step 2!). If you have 2 effects that you like, but 1 is mathematically worth more than the other, then you can make that one more expensive, or less often useful, or worth fewer points, or make sure it comes out later in the game so it has less time to be used... this will all depend on the game rules and structure.
The key here is to keep Steps 1 and 2 in mind. The goal is not to make every element in the game identical. The goal is to make sure that one element isn't strictly better than another, and that one player doesn't get an big unfair advantage based on the luck of the draw. It's important to remember also that you don't need every element to be exactly mathematically equal to a specific value - the goal is to make all the elements similarly powerful - there can be a range, but you don't want the range to be so big that the high end is a significant advantage over the low end.
Again, this is more important when the game element is distributed randomly. If players are drafting cards, or there's a race to get them (see Rokoko for a great example of this), then it's actually good to have a wide variety of values in those cards to help support that race/draft mechanism.
Step 4: Assess subjective aspects of the game element. Adjust and iterate.Not everything is easily measured in terms of the unit you found in Step 1. For example, how often an effect is likely to come into play is very difficult to measure - especially if it's based on player action rather than probability. In other words, something that triggers "every time a player rolls a 7" is very different from something that triggers "every time a player sells Coffee."
This step is where you adjust your set of elements based on these hard-to-calculate values, using your gut feelings, your design experience, and trial and error (testing) to finesse things until they feel right.
You may iterate on Step 4 many times before you decide the balance is correct.
Step 5: Weed out elements that are "too strong" or "too weak."In some ways this may be the most important step. It may seem obvious that a particular element is used before all others, every time. That's an indication that it's "too strong" - and that's boring. You don't want that. When an element is always chosen over all others every time, then it needs to be nerfed or cut.
There's a trap that's easy to fall into when balancing game elements though - and that's being too conservative and making things "too weak." If an element is too weak, then nobody will ever choose it, and if that's the case then why have it at all? When one of your elements is never chosen, then it should either be improved (is there a fun word for "the opposite of nerfed?") or cut.
I've adopted a new strategy when adding a new element to a game... I purposely make it too strong! This way I know that players will go for it, and I'll be able to see the new element's effect on the game. Tim Fowers just reminded me that in the videogame world they say "you don't know if you've gone far enough until you've gone too far." It may turn out that what I thought was "too strong" really was just fine after all. Or it may turn out that "too strong" really was too strong, and I'll have to tone it down. Either way, I got the information. If I'd made the new element too weak, I might never have really found out how it really works.
There's a further danger in that, as an element that LOOKS weak may be largely ignored in playtesting. But when thousands of players get their hands on the published game, someone will inevitably find out if the innocent-looking game element turns out to be entirely game breaking. I suspect that's how many games that have a dominant strategy came to be - the dominant strategy didn't look so inviting during playtesting.
TL;DR Summary:5 steps to balancing a game element:
1. Find the Unit.
2. Determine the desired power level of the game element.
3. Design the game elements (keeping steps 1 and 2 in mind).
4. Assess subjective aspects of the game element. Adjust and iterate.
5. Weed out elements that are "too strong" or "too weak."