|Honestly all I can say is syntax's in batch are very sensitive,|
the smallest difference in code can mess with a lot of different parts of your batch.
I see no problem, but from my own experience I've had a batch function wrong because of spaces in the statement.
Instead of using:
if %luck% == 1 goto lucky
if %luck%==1 goto lucky
Also make sure that there is a :lucky for the batch to goto.