Block ciphers need complete blocks. PKCS#7 padding appends bytes whose value equals the number of bytes added, making the result reversible after decryption. Random filler would not reveal where the original message ends. section 4.3
An eight-byte message for AES
With AES's 16-byte block size, an eight-byte plaintext receives eight padding bytes, each containing the value 8. If the plaintext already fills one block, PKCS#7 adds a full block of sixteen bytes, each containing 16. Decryption reads the final byte and removes that many bytes. section 4.3
Figure 4.6 If the plaintext is not a multiple of the block size, it is padded with the length needed to reach a multiple of the block size. In the figure, the plaintext is 8 bytes, so we use 8 more bytes (containing the value 8) to pad the plaintext up to the 16 bytes required for AES.
Visualize how eight bytes of value 8 extend an eight-byte plaintext to AES's 16-byte block boundary. section 4.3

