Tom's idea might not end up as unique because random() could theoretically generate the same number at some future point in time.
There is a system generated attribute for each BO which is ID, so I would suggest a Business Object rule which says
if [your unique id] is undefined then [your unique id] = bo.storeid + bo.ID