From your example, I am not sure where you are getting the ItemType hash of arrays from. Should it not be this?:
Code:
my $Item = $Weapons{$LevelCategory} [rand @Weapons{$LevelCategory}];
On another note, your post is probably a nice example of how to make use of arrays, hashes, and hashes of arrays lol.