I know Shadow Ball won’t affect normal pokemon, but Confuse Ray will, and both are ghost type attacks.
So, will Curse (when used by a ghost, of course) affect a normal pokemon?
Yes, it should affect Normal Pokémon when used by a Ghost (unless I was just imagining things yesterday).
In the past, it counted as a ???? type, instead of the Ghost type, which guaranteed its success. In the current generation, it seems to behave like Struggle, which also works independent of its attack type.