These trainers are not necessarily bounded by their vanilla pokemon. Instead, competitive teams are created using a custom battle generator. The matches get more difficult with time, starting off with low variance but starting to use competitive moves by Gym 3 and items by Gym 4. The gym themes are setup at about 3:1 ratio but may include unknown types. There is always at least 1 from the “may include” column.
Gyms
*Misty and Brock use anime inspired teams 🙂
Name
Theme
Lvl
Mega
May include
Brock
Rock, Ground*
16
n
Onix, Sudowoodo
Misty
Water, Fairy*
24
n
Starmie, Togetic
Surge
Electric, Steel
32
n
Raichu
Erika
Grass, Water
40
n
Vileplume, Victreebel
Koga
Poison, Dark
48
y
Muk, Weezing
Sabrina
Psychic, Fairy
56
y
Alakazam, Espeon
Blaine
Fire, Dragon
64
y
Arcanine, Incineroar
Giovanni
Ground, Dark
72
y
Nidoking, Rhyperior
Elite Four
Name
Theme
Lvl
Mega
May include
Lorelei
Ice, Water
80
y
Cloyster, Mamoswine, Slowbro
Bruno
Fighting, Steel
80
y
Lucario, Conkeldurr, Machamp
Agatha
Ghost, Dark
80
y
Gengar, Aegislash, Mimikyu
Lance
Dragon, Fire
80
y
Dragonite, Gyarados, Charizard
Giovanni
Name
Theme
Lvl
Mega
Celadon
Normal, Dark
36*
n
Saffron
Dark, Normal
45*
y
Always includes Persian. *may level scale.
Rival
Name
Theme
Lvl
Mega
Route 22
Grass, Water, Fire
12*
n
Cerulean
Grass, Water, Fire
21*
n
SS Anne
Grass, Water, Fire
24*
n
Poke. Tower
Grass, Water, Fire
35*
n
Silph Co
Grass, Water, Fire
42*
y
Route 22
Grass, Water, Fire
72*
y
Champion
Grass, Water, Fire
80
y
Always includes their starter. *may level scale.
Regular Trainers
All regular trainers use the vanilla engine to generate a random pokemon of similar power and type, baring a few special cases to enable uncommon or non-existent types (fairy, dark). Hence, whenever you are in a battle, you can expect the trainer to use the same types they were using before. If they have a dual-type, one is chosen randomly. They start to scale to your level and use competitive movesets later on.