Copying data to a .txt, but making it look nice?
You could do a better job describing the task; the task description should be a docstring.  I would also rename the function to select_platenumber(), since it's not really calculating anything.

If you're using plain text files as a database, watch out for race conditions.  Unless you implement some kind of locking mechanism, you could easily end up with corrupted files.

As @JamesKhoury says, you should only have to open each file once, using a with block.  Use the appropriate mode: you only need to append to the output file.  For the input file, you can truncate and overwrite it.

For efficiency, I prefer to select a random array index rather than a random array element.  Selecting a random element is more readable, but to remove that element involves a linear search through the list.

I think it would be safer to write the used_license_numbers.txt entry before overwriting license_numbers.txt, in case of an I/O error.  (You could have inconsistent data, but at least you would be less likely to lose data.)

Having similarly variables self.platenmb and self.platenumber is confusing.

def select_platenumber(self):
    """Selects and removes a random line from license_numbers.txt as the
       license plate, and appends a line to used_license_numbers.txt
       recording the license plate and customer name.
    """
    firstname = str(self.customer2_entry.get())
    lastname = str(self.customer3_entry.get())

    with open('license_numbers.txt', 'r+') as in_file, \
         open('used_license_numbers.txt', 'a') as out_file:
        plates = in_file.readlines()
        self.platenmb = plates.pop(random.randrange(len(plates))).rstrip()
        self.platenumber.set(self.platenmb)

        out_file.write('%-19s %s %s\n' % (plate, firstname, lastname))

        in_file.truncate(0)
        in_file.writelines(plates)