As your description, based on my understanding, it's a List Item Permission request!
In the list, You have two options to manage the List Item permissions as the following:
Item-level Permissions in Advanced Setting.
- Go to List Setting > Advanced Setting > set
Item-level Permissions to
- Read items that were created by the user.
- Create items and edit items that were created by the user
In this case, the User A can only read and edit items that created by himself
- Manage Permission for each List Item.
- You can create a group for the users whose should see the List item, then assign the permission for the list item by stoping the inheritance permission, then add your group that should see this list item
Note: This solution is not preferred for a large number of list items.
Do I have to create a different site for each user and just make new lists?
This will depend on your current business requirements, but I suggest if the list items are not related, it's preferred to use the same site and create a new list for each audience! no need to create a different site for each user!