The calculated distance (air line) between Johannesburg and Viljoenskroon is approximately 97 miles respectively 156 kilometers.
By car or train, the actual journey to Viljoenskroon is certainly longer, as only the direct route (as the crow flies) between Johannesburg and Viljoenskroon has been calculated here.
Air line (approximately)
156 kilometers
84 nautical miles