Seems like you're asking for a lot in a single thread.
I have no familiarity with programming bot heroes for hero arena like maps (i.e. the AI actually competes with the other players).
But I'll address your question as best I can.
The AI should pick random hero
You can just have a trigger that randomly assigns the AI a hero. Make an array which stores the rawcode of each hero, and then choose a random number between 0 and the size of the array minus 1. From that you'll get your random hero.
This is more complicated. Do you mean just buy potions / healing items, or also other items for stats (Claws of Attack)? We can go even more complex and have the AI also gather items for recipes.
The AI I believe will always use its skills if it's owned by an active computer player. Items I am not sure about.
Again you'll need to trigger this. Check out this recent thread on a very similar topic:
http://www.hiveworkshop.com/forums/triggers-scripts-269/efficient-trigger-ai-learn-skill-254677/
Lastly
This won't really be necessary if each AI player has at most 1 hero. However, if the AI will be controlling multiple heroes, then it would need to be MUI.
But first I would get it working just with one hero. Easier to start out simple then generalize, especially since you'll have to do quite a bit of debugging / behavior correcting.