You have two static lists of words in the JS code - known words, and a smaller, random pre-shuffled list of words the game will select from.
The selection is done on the client, by date, from the second list - every day at midnight (your local time!) the next word in the pre-shuffled list is selected - no hashing or randomizing or anything. No cookies are involved in making you play one game per day, no server side calls are involved in gameplay at all. And yes, this means that changing your time zone will let you play tomorrow's game, and that you can just view source to know tomorrow's word - it appears right after today's word in the code.
This is so counter to how we usually design software in so many ways, it's just delightful.