Question: In Plants vs Zombies, are there strategies that make it more probable to have certain plants (for your Zen Garden)?

How does the game decide which plant is given?

Answer: 
After doing some testing, it seem to be quite random. Either random between all the plant (Survival endless) or random between a row (in the adventure).

What worked best was to play the adventure however and ever. In the level that correspond to row of the plant I am going, there is reasonable probability that I will have it after getting a few. Not sure, but improve the odd over playing survival endless.
At least on the PC version of the game, if you play Hard Survival levels, you can improve your chances of getting specific plants. If you get a Zen Garden plant, it will be from a specific set plants, a list of 8 plants on most levels or 6 on Roof level. No other plant for your Zen Garden will show up on that level. The list of plants that can show up on each Hard Survival level is shown below.

* **Day Hard Survival:** Peashooter, Sunflower, Cherry bomb, Wall-nut,
Potato mine, Snow pea, Chomper, or Repeater
* **Night Hard Survival:** Puff-shroom, Sun-shroom, Fume-shroom, Grave
Buster, Hypno-shroom, Ice-shroom, or Doom-shroom
* **Pool Hard Survival:** Lily pad, Squash, Threepeater, Tangle kelp,
Jalepeno, Spikeweed, Torchwood, or Tall-nut
* **Fog Hard Survival:** Sea-shroom, Plantern, Cactus, Blover, Split pea,
Starfruit, Pumpkin, or Magnet-shroom
* **Roof Hard Level:** Cabbage-pult, Kernel-pult, Coffee bean, Garlic,
Umbrella leaf, or Melon-pult