A cute trick I like to use to investigate this kind of type advantage system to simulate how players might use those types when competing with each other.
Even if your game is purely PvE or doesn't have this type of random matchmaking, it can be useful to imagine it did - what would all my NPC trainers and gym leaders be choosing, if they had free will and were actually trying to win against each other?
If, given a variety of opponents, you're statistically less likely to win if you field a Water type, then players would tend to avoid that type, and as a developer you get less gameplay bang-for-buck out of the resources you've invested into making cool Water-type monsters. So imagining this competitive landscape can help us spot such issues, even if we haven't yet planned out the final parties of all the opponents in the game.
Here's what such a model could look like, using just the first five of your elements to keep things simple for a demo:
The basic idea is this: at any moment, the population of competing players has certain preferences for one type vs another. Maybe Fire is hot right now, and folks think Air is underpowered, so you don't see many players fielding Air monsters. That describes the current state of the game's "meta" - a probability distribution over the possible strategies you're likely to see from an opponent in a random match.
Based on that distribution, you can calculate how advantageous it would be to field a monster of each type. If not a lot of players are playing Air, then you're less likely to get your 2x damage bonus if you use Void, so Void becomes less likely to have an advantage in that mix.
Then we iterate. Based on which types were advantageous vs the meta in the previous time step, we simulate some portion of the players (controlled by the "Mobility" parameter) changing their strategies - moving away from types at a disadvantage in the current meta, and toward types that currently have an advantage. This gives us a new meta, with slightly different preferences for types, and we iterate again.
That's what this spreadsheet is doing. From an initially random set of preferences (maybe day 1 players choose monsters purely based on looks), each row simulates one state of the meta and how attractive each type is in that state, then the next row is the state after a portion of the players change their strategies.
You can see that with the perfectly symmetrical pattern of advantages and disadvantages, from any random starting state, the lines converge to approximately equal ratios (what would be a "mixed strategy Nash equilibrium"). In this simulation, there's still some oscillation around the true equilibrium point of 20% chance to encounter each type, because our fixed mobility percentage means our simulated players tend to over-correct for imbalances when they're small. But in practice, players have imperfect information and their strategic responses lag, so it's not unusual to find most players in "donkey space" like this. 😉
So far, this seems like a lot of math to just graph what you already knew: if everything has 2 advantages, things balance out!
Well, almost. Here's another scheme where each type is strong against two other types, but I broke the symmetry so they no longer form a neat loop of mutual counters. I've left Earth with no strong counter at all:
Here, the lack of a cyclic counter allows Earth to climb up to nearly 80% dominance, with barely anyone daring to field a Water or Air monster (who would be weak to Earth).
So it's not just the number of strengths/weaknesses that matter, but also how they're arranged.
Symmetric arrangements (like Philipp's "place them in a circle" strategy) are consistently stable. But by playing with this kind of model you can find reasonably-stable arrangements even with non-symmetrical patterns of advantage.
This can help if you want to break the symmetry for the sake of gameplay variety and to create a more complex problem space for players to learn and master (e.g. Pokémon's type chart is famously chaotic).
But it can also help you plan for the case where asymmetries creep in via your monster design or other second-order effects. Maybe it's true that the type advantages are balanced assuming monsters within those types are otherwise interchangeable, but if Earth monsters tend to have more HP or higher Defense stats in addition to their type advantage, then the net effect might be more like...
Here I lowered all the numbers in the Attacks vs Earth Defender column by 10% to simulate this extra edge from toughness in the monster design. You can see Earth type does now get more popular because it's statistically better... but it doesn't completely dominate. Less than 30% of monsters fielded are Earth in the equilibrium - higher than 20% perfect balance, but not so lopsided as to sap all variety from the game.
This is the effect of the "Perfect Imbalance" Philipp described. Because Earth still has strong counters - monsters that do better when players get too greedy in fielding Earth monsters - even a fairly substantial "balancing error" in the monster design doesn't cause the meta to collapse into one type completely dominating or completely not worth playing.
Checking for robustness against deviations like this is useful, because in practice it's actually quite difficult to get two different monsters that have exactly equal odds of winning, without balancing them to bland sameness. So even those white "1x / no advantage" boxes will usually end up being something more like 1.05 or 0.8, just due to emergent interactions of your combat mechanics. Watch out for this with your Time and Soul types - relying on exactly equal balance without counters to catch emergent biases is fragile!
It's also interesting to see that one of Earth's counters, Air, stays more popular than the other, Water, because Water is weak to Air in this scheme. So this sim can be useful for seeing what second-order effects and emergent dynamics come out of different degrees of imbalance.