There's two "complex" ones, Artillery and Default targeting, and the rest are "simple" targeting providers.
What this basically means is that the complex ones actually have a formula which determines which target the bot will be going for, for Artillery, that's:
100 + (1000 - (s.Speed * 10)) + (s.Tier * 10) + s.Distance
And for the default targeting it's
5000 - (10 * s.Distance) - (10 * (100 - s.HealthPercentage)) - (s.Tier * 50) + (s.CanHit ? 1000 : 5)
Though I should probably revise the last one a little, it's a bit wonky especially with the CanHit part; we don't even consider targets which we can't hit.
Anyway, the other ones (Distance, Execute, Health, and Tier) are simple ones; they only take one thing into account when determining their targets. Distance targets the closest one, Health the lowest actual HP one, Execute the lowest % health, and Tier the lowest tier. You can probably see where that leads; when there's two tier 6 tanks for example available, they're both equally valuable to the bot, and the bot won't have a definitive target.
Technically spoken, the default one is the best. It takes everything the others take into account and weighs every vehicle individually depending on Health Percentage, Distance etc.
How the actual targeting works is it applies those formulas and then selects the target which has the most "weight" left, which is generally the best target for us.