I actually have an idea about this. First you should put a dummy item drop. This can be anything, it is used to start the rolling sequence. I'll name the item START1.
Ok so first we add the following trigger:
Code:
Event - Unit - A unit Acquires an item
Condition - Item being picked up equal to START1
Action - Set ROLLINGSEQUENCE to 1
Note: Rollingsequence is a real variable
You can add a Remove START1 action which will remove our dummy item, the purpose of the dummy item was to activate the roll sequence and there is no use for it anymore. Now lets see the rolling sequence itself. First you'll need a couple of variables(equal to the number of players). They have to be integer. I'll make an example for player 1
Code:
Event - Player - Player 1 (Red) types a chat message containing -roll as An exact match
Condition - ROLLINGSEQUENCE equal to 1
Action - Set PLAYER1ROLL == Random number between 1 and 100
You'll also want to add a Game - Show message to all players for 20 seconds PLAYER1ROLL, but I'm not 100% sure how this is done since I don't have Warcraft III at the moment.
Then you would want to add a trigger that will process which PLAYERROLL was the highest and give him the specific item, sorry, not sure how this is done and I can't test it since I don't have WE
Note: You will need to attch this to every item roll, and you should add a condition in the first trigger to check which item you are rolling for in the beggining.
I'm not sure how skilled you are with triggers, but from here you can probably find out by yourself how to do the highest roll check sequence.
Once again I'm sorry I can't be of more help, but seeing as how I don't know the WE by heart and I don't have it now, there is not much else I can do. I hope this helps.