I have a web page with infinite scroll. I'm feeding this scroll with random records (I'm using `order by newid()` for that). There is ajax call which appends page with new random data when scroll reaches the end. Obviously I'm getting duplicate records with this approach. 
Here is my question: is there any way to avoid duplicate records? Should I store somewhere records that already have been loaded to the page and exclude them from the selection? Or should I select huge recordset with random records, keep it in memory, and then feed the page with chunks of this recordset? What is the right way to do random infinite scroll? Thanks in advance!

**EDIT**

code as requested:

Data provider:

```
res = data.OrderBy(l => Guid.NewGuid()).Take(numberOfRecords);

```

Client:

```
$.get("/Start/Index/", function (data) {
                if (data != '') {                        
                    isLoading = false;
                    $("#tiles").append(data);});

```

Server:

```
model.PageData = _dataProvider.GetOnePage(recordsPerPage);
return PartialView("_MyView", model.PageData);

```