Informal:
* Fool
* Simpleton
* Dolt
* Dunce
* Nitwit
* Moron (can be offensive)
* Blockhead
* Goof
* Doofus
* Chump
* Dimwit
* Buffoon (implies clumsiness)
More formal:
* Idiot
* Imbecile (archaic)
* Naive
* Gullible
* Credulous
Figurative:
* Airhead
* Clueless
* Space cadet
The best synonym for "ninny" will depend on the context and the level of formality you desire.