SQL Server - backup restore - lose indexes?
There is no setting that allows indexes to be omitted from the backups or restores.  Such a feature would be nice as it would result in much smaller backups, but Microsoft states that there are many hurdles to adding such a feature (see here).

It's most probable that the indexes did not exist when the backup completed.  There may be an ETL job that removes indexes before a data load, and then creates the indexes again after the load is complete.  Look for other types of activity that occur on the server leading up to the backup window.  If it were such an ETL job doing this, for example, some loads may be taking so long that they aren't complete when the backup ends.  So you'd have a timing issue where sometimes the backup has the indexes, and sometimes it doesn't.

It's also possible, but I would expect you'd know if this is the case, that the backup was actually created on another server that had a copy of the database, and the backup job drops indexes first to make the backup smaller.  This would not be a hit or miss situation as you've reported.

You can also read  here  for another way to accomplish this using filegroups, but again, this wouldn't be hit or miss as you've reported.