Je n'en doute pas : J'ai bien décomposé le processus pour le rendre évident, mais à la limite pas besoin d'index. Tu peux partir directement... de ton tableau structuré.
Associer un caractère (J'ai utilisé l'alphabet car ton tableau est petit) à chaque produit. Tu créés un string de N caractères représentatif de tous les produits.
Donc dans ton exemple je crée un string de 1000 caractères AAAABBBCCCCCDDEEEE... Ensuite tu démontes ton string en retirant aléatoirement un des caractères.
Quand le string est vide. C'est que tu les as tous tirés... Si tu veux n'en tirer que 100 ben tu t'arrêtes quand ton string n'a plus que 900 caractères.
Quand à la correspondance finale j'ai utilisé un RECHERCHEV mais tu pourrais tout aussi bien utiliser un dico et afficher chaque sortie dans un MsgBox...
A+