What is the best/easiest way to do something like this? I would rather not have to place every icon. I had though about using a mask but that can chop off parts of the icons.
I don't think there is a feature for that. You can make a mask, just like you said and then adjust the objects.
I have used smth similar but only with words instead of icons - Tagxedo - Word Cloud with Styles ; Wordle - Beautiful Word Clouds
There are a lot of them, try google search "word cloud online"