you can just create a new item group that generate items randomly with different rate .. that work just like Old Blue Box / Old Violet Box / Cash Egg..
*groupranditem <group id>;
Returns the item_id of a random item picked from the group specified. The
different groups and their group number are specified in db/item_group_db.txt
When used in conjunction with other functions, you can get a random item. For
example, for a random pet lure:
to use it in npc...just add this
getitem groupranditem(<ItemGroupID>),1;