Module

Module[{vars}, expr]
localizes variables by giving them a temporary name of the form name$number, where number is the current value of $ModuleNumber. Each time a module is evaluated, $ModuleNumber is incremented.

Initial values are evaluated immediately:

Variables inside other scoping constructs are not affected by the renaming of Module: