game design – Magic number Difficulty Balance

So I have been working on my game for almost two years and, although it is much more balanced than a year ago, I still feel that it is too easy or, rather, does not have any kind of difficulty curve over time. It's a top-down shooter, and more enemies appear as you get to later waves, but the bosses are all a joke in terms of difficulty and some of the weapons can easily eliminate large groups of enemies if you know how to use them correctly.

So, how do I know what "magic numbers" I should choose to have a constant difficulty in my game, and is there a good way to determine a formula to increase that difficulty in later waves? Should I be increasing the health of the enemies over time? Or would not it make sense since they are the same enemies? I increase the number of enemies over time by having a "spawning group" that is just a whole number that increases on a logarithmic scale according to a formula I just found and plotted a while ago. Each enemy has a "cost" to generate and at the beginning of each wave, random enemies are chosen and their cost is deducted until the spawning group is exhausted for that wave.

The damage and the health of the enemies are calculated randomly using a kind of D20 system like Dungeons & Dragons, where, for example, the first enemy that you find in the health of the game is calculated rolling 2d8 + 12 (throwing two dice of 8 faces and add 12), so the range of health values ​​they can have is 14-28. The health of all enemies is calculated in this way. The effects of the enemy's attacks and damage, as well as the player's weapons, use this method to generate numbers.

Is there a good way to decide on good numbers, just to play again and again until you feel good? Would it be bad to increase their health and their damage over time since they are still the same enemies? Or maybe I should get rid of them in later waves and replace them with an improved basic enemy that is identical (maybe a color change) but with better statistics?

The examples would be impressive.