In the recent Ask Riot, we saw some pressing League of Legends questions answered. Here is the summary.
Does "Your Shop" randomise what skin you get, or is it predetermined?
The skins in Your Shop are specifically picked for you. You can check out the Tech Blog article, but essentially the offerings are based on the Champions regularly played by the person, Champions similar to said Champions, and skin types regularly used; all put through algorithms days before Your Shop even appears in the client.
Is Champ Select (for ARAM's) totally random?
"The logic for ARAM’s Champ Select is in a service we call TeamBuilder. The TeamBuilder server knows what champ every player has rolled, what’s on the bench, etc., for both teams. TeamBuilder prevents any player from rolling a champion that someone else has rolled."
TeamBuilder runs algorithms to make sure that players don't reroll into the same Champion, TeamBuilder does the work and then tells the client what to do.
In set-math terminology, it is; ((A U C U O) \R) \D
A is the 65 Champions that are always free-to-play for ARAM. C is the free-to-play Champions on rotation at the time. O is the set of Champions owned, and R is the set of Champions rolled by each team so far; with D being any disabled Champions. Basically, players will always get a random Champion that isn't on a team or a bench. This is done for the initial Champions given as well as any rerolls.
However, Champions from previous games, or even queue-dodged Champion selects, have no effect on anything. This means it is possible to get a streak of the same Champion multiple times.
TL;DR: ARAM's are random, but in a controlled way.