You basically pick which pokemon you want on your team. Pick for moves that are possible for them to learn. This includes moves that could be obtained from leveling up, TMs, HMs, egg moves, & tutor moves. You can pick them at any level, give them any amount of EVs, IVs, and PP Ups (3 max for each move), and make them shiny if you want. It's really no different than hacking.