Sucker Punch does damage and is an increased priority move. If the target does not use an increased priority move during the round that it is used, Sucker Punch will go first regardless of the user's or target's Speed. If the target also uses an increased priority move during the same round that the user uses Sucker Punch, the attack order of the users will be determined normally. If the user is put to sleep or frozen during the round that Sucker Punch is (or attempts to be) used, Sucker Punch's increased speed priority will not be reset. Subsequently, it will only be reset on the turn after the user wakes up or is defrosted, or if the user switches out.
If the target uses a non-damaging move or happens to act before the user, Sucker Punch will fail
It's up to the opponent whether Sucker Punch works or doesn't work. The best you can do is 'predict' when the opponent is going to attack - so the most likely time, and then use Sucker Punch.