If there are two or more players in the world, you have a loot table like the one below, and then they give players via /loot give @a loot <name>, all players get the same number and type of items.
{Â "pools": [ { "rolls": 1, "entries":Â [ { "type": "item", "name": "minecraft:white_wool" }, { "type": "item", "name": "minecraft:black_wool" } ] } ]}
I think this is intended. The game will first generate a bunch of items according to the given source and then give those items to specific targets after you execute the command. You can try using
/execute as @a run loot give @s loot <name>
to give players different items iirc.