For starters, I pick up a game and only use Pokémon native of the region for the first playthroughs, at the 4th or 5th run I might consider using old Pokemon I never used.
Then I pick the Pokémon with decent stats. Not everything has to be a Salamence, but I want Pokémon able to hold their own, so Butterfrees are out of question.
Then I pick a starter. After he is chosen I add two other pokémon that will make a Fire-Water-Grass cor with it. With three pokémon left I then pick a flyer, if none of the chosen ones so far can fly.
Then I complete the team with other pokémon I like. I tend to include Steel types because unlimited resistance works and they are my fav type and a Dragon because dat STAB
After the beta 6 are gathered, I check for repeated typings and if they are I replace them. If I have two blue pokémon, I will replace one because rainbow of colors is best team. If there's a fish Pokémon included, I won't use it.
And if by the end of the autism overload I don't have a full team, I either a) Use a legendary from the minor trio b) use old Pokémon never used before. So far I only had to do this in Gen 2