A race condition occurs in a concurrent system when the outcome depends on the non-deterministic timing or sequence of uncontrollable events, leading to unpredictable behavior. It is a critical issue in multithreading and distributed systems, often resulting in software bugs or security vulnerabilities if not properly managed with synchronization mechanisms.