Pokemon have hidden "stats" called Individual Values (IVs for short). They have one for each of the six stats: HP, Attack, Defense, Special Attack, Special Defense, and Speed. These IVs influence the pokemon's stat growth along with their nature and EVs. The IVs of a pokemon are randomly generated the moment a pokemon is encountered or hatched from an egg.
Natures are chosen at random the moment a pokemon is encountered or hatched from an egg. The nature will influence stat growth of a pokemon as it grows. Except for 5 natures, all of them will give both an increase and a decrease in two stats. For example, a pokemon with a Lonely nature will get an increase in Attack while getting a decrease in Defense.
EVs (or Effort Values) are values that get added to your pokemon's stats with each level. EVs are obtained by battling other pokemon and defeating them. Each pokemon gives between 1 and 3 EV(s) in a given stat after they are defeated. For example, if you fight a Magikarp and defeat it, your pokemon will gain 1 EV in speed. Each pokemon can only have 510 EVs at any given time and they can only have 255 in any given stat at any given time. For every 4 EVs in one stat the pokemon will gain one stat point when they level up.