In reply to bmorris:
Yes, m_sequencer is null during pre_randomize unless I first call set_sequencer. I think this may be the best solution:
my_seq p = my_seq::type_id::create();
p.set_sequencer( some_sequencer );
assert( p.randomize() );
p.start( some_sequencer );
And then pre-randomize looks pretty much as cgales posted. Thanks, everyone.
I can just add an error message to my sequence to remind me if I forget to use it this way.