First some terminology. There is Dynamic Data Masking and Static Data Masking.
The feature for SQL Server is for dynamic data masking. This means that you apply a masking function and data is returned to the client according to the masking function. The masking occurs at run-time, and the data in the table is left unmolested. Furthermore, if the user has the UNMASK permission on the table or column, the user can view the actual data. Not surprisingly members in the sysadmin and db_owner roles have this permission.
Static data masking is something completely different. It is not really masking - it is destruction. That is, the original data is replaced with something else, and the original data is nowhere to be found. Obviously, you would not run static data masking on your production database. But if you work with sensitive data, regulations may require that you anonymise production data before you let into to downlevel environments such QA, Test or Dev.
Microsoft does not have any solution for static masking, but there are a couple of third-party products out there. Red Gate have their Data Masker, which comes with a license fee. I believe there is also a solution in dbatools.io, and this is a free solution in the public domain.