Dera Forihana,
The "=" operator is an assignment, it it says that "ShopperGroups" should get the value 5, which is not what you have in mind. Admittedly, the error message is not very clear...
As ShopperGroups is a list, you rather want to check whether 5 is in the ShopperGroups list:
Variable=ShipReducedRate; Value=0.1*BasePrice
Name="Shipping complex function"; 5 in ShopperGroups; 0.001<=Weight<=0.65;Shipping= Max(6, 19.08-ShipReducedRate)
Alternatively, you can use "contains_any(ShopperGroups, 5)"
Best regards,
Reinhold