Im not really sure what you want, but i understood that you wanted the enchantment to be random instead of it to be selected in a list.
 
	I had made here a modification on line 47 making it random instead of selecting it from the list.
 
mes .n$;
mes "Hello, "+strcharinfo(0)+"!";
mes "If you like I can enchant your costume equipment with any enchantment I have in store";
mes ( (.exchange_cost[0] > 0)?"in exchange for "+.enchant_cost[1]+"x "+getitemname(.enchant_cost[0]):"for free")+".";
mes "I can also reset an Enchantment "+ ((.enchant_reset[0] > 0)?", but I require "+.enchant_reset[1]+"x "+getitemname(.enchant_reset[0]):"for free")+".";
next;
switch(select("- Enchant Costumes:- Reset Enchantment:- Nevermind")) {
	
	case 1:
	mes .n$;
	mes "Please select the Costume you want me to enchant:";
	for ( set .@s,0; .@s < getarraysize(.enchant_slot); set .@s,.@s + 1) {
		switch(.enchant_slot[.@s]) {
			case EQI_COSTUME_HEAD_TOP: set .@c_slot$,"Top Headgear"; break;
			case EQI_COSTUME_HEAD_MID: set .@c_slot$,"Mid Headgear"; break;
			case EQI_COSTUME_HEAD_LOW: set .@c_slot$,"Low Headgear"; break;
			case EQI_COSTUME_GARMENT: set .@c_slot$,"Garment"; break;
			case EQI_SHADOW_ARMOR: set .@c_slot$,"Armor"; break;
			case EQI_SHADOW_WEAPON: set .@c_slot$,"Weapon"; break;
			case EQI_SHADOW_SHIELD: set .@c_slot$,"Shield"; break;
			case EQI_SHADOW_SHOES: set .@c_slot$,"Shoes"; break;
			case EQI_SHADOW_ACC_R: set .@c_slot$,"Accessory Right"; break;
			case EQI_SHADOW_ACC_L: set .@c_slot$,"Accessory Left"; break;
		}
		set .@c_m$,.@c_m$ + ((getequipid(.enchant_slot[.@s]) != -1)?.@c_slot$ + " - "+getitemname(getequipid(.enchant_slot[.@s])):"") + ( (.enchant_slot[.@s+1] != 0)?":":"");
	}
	set .@c_m$,.@c_m$ + ":- Cancel";
	set .@c,select(.@c_m$);
	if(.@c >= getarraysize(.enchant_slot)) close;
	set .@part,.enchant_slot[.@c-1];
	next;
	mes .n$;
	if(getequipid(.@part) == -1) {
		mes "It looks like you don't have any costume equipped on there.";
		close;
	}
	set .@hg,getequipid(.@part); // Saving Item ID
	set .@ref,getequiprefinerycnt(.@part); 	// Saving Refine Level, if there is one
	set .@card1,getequipcardid(.@part,0); // Save Item ID of Card Slot 1
	mes "Selected Costume: "+getitemname(getequipid(.@part));
	if(getequipcardid(.@part,3) != 0) {
		mes "But it looks like you already have an enchantment in this costume.";
		close;
	}
	mes "Now please select the Enchantment:";
	next;
	set .@rune,rand(0, getarraysize(.enchant_id) - 1);
	mes .n$;
	mes "Selected Enchantment: "+getitemname(.enchant_id[.@rune]);
	if(.enchant_cost[0] > 0 && countitem(.enchant_cost[0]) < .enchant_cost[1]) {
		mes "But it looks like you don't have enough "+getitemname(.enchant_cost[0])+"!";
		close;
	}
	mes "Proceed?";
	if(select("- Yes:- No") - 1) close;
	next;
	if(.enchant_cost[0] > 0)
		delitem .enchant_cost[0],.enchant_cost[1];
	delequip .@part;
	getitem2 .@hg,1,1,.@ref,0,.@card1,0,0,.enchant_id[.@rune];
	equip .@hg;
	mes .n$;
	mes "The enchantment was a success.";
	mes "See ya next time.";
	enable_items;
	break;
		
	case 2:
	mes .n$;
	mes "Please select the Costume you want me to reset the enchantment!";
	for ( set .@s,0; .@s < getarraysize(.enchant_slot); set .@s,.@s + 1) {
		switch(.enchant_slot[.@s]) {
			case EQI_COSTUME_HEAD_TOP: set .@c_slot$,"Top Headgear"; break;
			case EQI_COSTUME_HEAD_MID: set .@c_slot$,"Mid Headgear"; break;
			case EQI_COSTUME_HEAD_LOW: set .@c_slot$,"Low Headgear"; break;
			case EQI_COSTUME_GARMENT: set .@c_slot$,"Garment"; break;
			case EQI_SHADOW_ARMOR: set .@c_slot$,"Armor"; break;
			case EQI_SHADOW_WEAPON: set .@c_slot$,"Weapon"; break;
			case EQI_SHADOW_SHIELD: set .@c_slot$,"Shield"; break;
			case EQI_SHADOW_SHOES: set .@c_slot$,"Shoes"; break;
			case EQI_SHADOW_ACC_R: set .@c_slot$,"Accessory Right"; break;
			case EQI_SHADOW_ACC_L: set .@c_slot$,"Accessory Left"; break;
		}
		set .@c_m$,.@c_m$ + ((getequipid(.enchant_slot[.@s]) != -1)?.@c_slot$ + " - "+getitemname(getequipid(.enchant_slot[.@s])):"") + ( (.enchant_slot[.@s+1] != 0)?":":"");
	}
	set .@c_m$,.@c_m$ + ":- Cancel";
	set .@c,select(.@c_m$);
	if(.@c >= getarraysize(.enchant_slot)) close;
	set .@part,.enchant_slot[.@c-1];
	next;
	mes .n$;
	if(getequipcardid(.@part,3) == 0) {
		mes "It looks like you don't have any enchantment in this costume.";
		close;
	}
	set .@hg,getequipid(.@part); // Saving Item ID
	set .@ref,getequiprefinerycnt(.@part); 	// Saving Refine Level, if there is one
	set .@card1,getequipcardid(.@part,0); // Save Item ID of Card Slot 1
	mes "Selected Costume: "+getitemname(getequipid(.@part));
	if(.enchant_reset[0] > 0 && countitem(.enchant_reset[0]) < .enchant_reset[1]) {
		mes "But you don't have the required Items to reset the enchantment!";
		close;
	}
	mes "Proceed?";
	if(select("- Yes:- No") - 1) close;
	next;
	if(.enchant_reset[0]) 
		delitem .enchant_reset[0],.enchant_reset[1];
	delequip .@part;
	getitem2 .@hg,1,1,.@ref,0,.@card1,0,0,0;
	equip .@hg;
	mes .n$;
	mes "The enchantment has been reseted.";
	mes "See ya next time.";
	break;
	
	case 3: break;
}
end;
OnInit:
set .n$,"[Costume Enchanter]";
// Enter here every Costume Slot, which you want to be enchantable
// Valid Entries:
// - EQI_COSTUME_HEAD_TOP
// - EQI_COSTUME_HEAD_MID
// - EQI_COSTUME_HEAD_LOW
// - EQI_COSTUME_GARMENT
// - EQI_SHADOW_ARMOR
// - EQI_SHADOW_WEAPON
// - EQI_SHADOW_SHIELD
// - EQI_SHADOW_SHOES
// - EQI_SHADOW_ACC_R
// - EQI_SHADOW_ACC_L
setarray .enchant_slot[0],EQI_COSTUME_HEAD_TOP,EQI_COSTUME_HEAD_MID,EQI_COSTUME_HEAD_LOW;
// Enchantment ID's
setarray .enchant_id[0],6636,6637,6638,6639,6640,6641;
// Price for enchanting:
// To disable the price, put 0 as values
setarray .enchant_cost[0],501,10; // Item ID,Amount
// Price for reseting:
// To disable the price, put 0 as values
setarray .enchant_reset[0],501,10; // Item ID,Amount
end;
}
	If you can be more specific of what do you need maybe i can help you further. If you dont know how to say it you can use the help of google translate