Sequence layering for single agent

Hi,

I have a message with sop,payload,eop. This is one transaction / message will be driven on one agent(only one agent will communicate with dut).
at the end ,i should create a payload with different packets and drive it on existing driver!
Payload is a combination of multiple different packets .(eg : payload consists of reg wr,reg rd,other configuration operations ,mem wr …etc)
eg :payload depth is 1000(it is fixed).
Question : Best way to create a sequence ?

In my opinion -
Create items for each packet(with random fields) and randomize individual packets and push it into payload … until the depth of payload reaches ?
Is it right way to do ? or any other best way to handle this scenario!!

or Please let me know your views

Thank you.