Shared lists break apart the lists into configured size chunks and distribute the contacts amongst the reps dialing down the list. The lists are refreshed as the reps are dialing down so they are always dialing down the highest value contacts.
As an example let's say we have a list of 100 leads split up amongst three reps with attempts per agent set to 15. The first rep the loads the list will get 1-15, the second will get 16-30, and the third will get 31-45. As they continue dialing down the list they'll automatically receive more call attempts (still sorted) and if they stop making calls their uncalled contacts will be returned to the pool so that no contacts get dropped on the floor.