You are absolutely correct. If no sampler was passed to the DataLoader and shuffle=True was set, a RandomSampler 60 will be used.
The replacement argument is set to False by default, so basically this line of code 77 will be executed as you’ve described.