Well you can create a box that will call a function that will allow him to choose the items that he wants.
You just need to find a box and edit the items as needed.
// item_db.txt
35022,Freebie_Headgear_Box,Freebie Costume Headgear Box,18,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc "freecoshg"; },{},{}
// script.txt
function script freecoshg {
setarray .freehg[0],19537,19835,31197,19973,20148;
mes "Please select your Freebie Costume Headgear:";
next;
select(""+getitemname(.freehg[0])+":"+getitemname(.freehg[1])+":"+getitemname(.freehg[2])+":"+getitemname(.freehg[3])+":"+getitemname(.freehg[4])+"");
//*getitem2 <item id>,<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>{,<account ID>};
getitem2 .freehg[@menu-1],1,1,10,0,0,0,0,0;
announce "Congratulations! "+strcharinfo(0)+" has just received the amazing "+getitemname(.freehg[@menu-1])+" from the "+getitemname(35022)+"!",0;
end;
}