They are very similar, though they have slightly different meanings.
"criticize" is commonly used, whereas "scold" is less common.
You could say your boss "scolded" you, but "criticize" seems more appropriate (to me anyway!). In my experience, a mother would "scold" a child.
"rebuke" is very rarely used - I don't think I have ever heard anyone say the word "rebuke" in conversation. I have seen it written, but very rarely.
If in doubt, use "criticize" as it fits most situations, whereas "scold" seems (to me) to only fit certain situations.
P.S. I am not a professional, only a native English speaker :)