Another good suggestion I saw on the forum (I wish I could give credit where due) was to roll the actions so they're not the same every day. By using flags and having the code blocks turn certain flags on and off you can make the pattern seem suitably random.
Below is an example with three flags, you can get more complex with more flags and getting creative about which flags turn which blocks of flags on and off.
TIMED 8:01 PM MTWTFSS
AND IF FLAG 1 CURRENT VALUE IS 1
THEN SET FLAG 1 TO 0
THEN SET FLAG 2 TO 1
THEN UNIT 1 ON
TIMED 9:01 PM MTWTFSS
AND IF FLAG 2 CURRENT VALUE IS 1
THEN SET FLAG 1 TO 1
THEN SET FLAG 2 TO 0
THEN SET FLAG 3 TO 1
THEN UNIT 2 ON
TIMED 10:01 PM MTWTFSS
AND IF FLAG 3 CURRENT VALUE IS 1
THEN SET FLAG 3 TO 0
THEN UNIT 3 ON
On day 1 it will turn on light 1 at 8pm. On day 2 it will turn on light 2 at 9pm. On day 3 it will turn on light 1 at 8pm and light 3 at 10pm. You will, of course, need blocks to turn off lights. The following examples will vary your "bed time". I have a failsafe all off late at night on mine as a safety net incase my complex logic fails at some point due to a weird flag state.

TIMED 11:01 PM MTWTFSS
AND IF FLAG 1 CURRENT VALUE IS 1
THEN ALL UNITS OFF
TIMED 11:21 PM MTWTFSS
AND IF FLAG 2 CURRENT VALUE IS 1
THEN ALL UNITS OFF
TIMED 12:21 AM MTWTFSS
THEN ALL UNITS OFF